Отправка формы JavaScript без проверки

#javascript

#javascript

Вопрос:

Я использую следующий JS для проверки формы при отправке:-

 function validate()
{
   if( document.square.PosX.value == "" )
   {
     alert( "Please pick where in the square you think we are" );
     document.myForm.PosX.focus() ;
     return false;
   }
   return true;
}

<form name="square" action="save_results.php" method="post" onsubmit="return validate();">
         <input type="text" id="PosX" name="PosX">
         <input type="submit" value="Submit">
</form>
 

Когда поле «PosX» пустое, и я нажимаю «Отправить», я вижу всплывающее окно с предупреждением в браузере, но когда я нажимаю «ОК», форма все равно отправляется.

Как я могу предотвратить фактическую отправку, если поля формы не являются пустыми?

Спасибо

Комментарии:

1. К вашему сведению onsubmit="return(validate());" , должно быть onsubmit="return validate();" , и return( true ); должно быть return true;

2. @j08691, не проблема. Вы могли бы написать return((((validate())))) , и интерпретатор остался бы невозмутимым.

3. Спасибо, исправил это, но все еще не исправил мою первоначальную проблему с отправкой формы.

Ответ №1:

В вашем скрипте ошибка копирования и вставки: см. Название формы: document.square.PosX.focus() ;

 function validate()
{
   if( document.square.PosX.value == "" )
   {
     alert( "Please pick where in the square you think we are" );
     document.square.PosX.focus() ;
     return false;
   }
   return true;
}
 

Ответ №2:

Это сбой, потому что вы ссылаетесь на форму с именем myForm , когда она на самом деле названа square. . Если вы посмотрите на консоль ошибок при запуске кода, вы увидите, что получаете Uncaught TypeError: Cannot read property 'PosX' of undefined из-за этого.

Измените строку document.myForm.PosX.focus() ; на document.square.PosX.focus();

Пример jsFiddle