#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();