Я прочитал несколько SO сообщений по этому вопросу, и один, который я нашел с возможным объяснением, был этим одним.Ответ в этом посте гласит: «Браузеры не вызывают событие onSubmit в форме, если вы вызываете submit () программным способом».
Я не уверен, влияет ли эта операция на мою форму.
Мой код onsubmit = "return onNewUserRegistrationCheck (this);"работает на 100% - вызов onNewUserRegistrationCheck (this) происходит на 100%.
Вот этот код:
function onNewUserRegistrationCheck(theForm)
{
alert("In onNewUserRegistrationCheck()");
if(theForm.loginname.value == "<?php echo Labels::$DEFAULTLOGINEMAILLABEL ?>"
|| theForm.password.value == "<?php echo Labels::$DEFAULTPASSWORDLABEL ?>" )
{
alert("returning false now, so -- HOPEFULLY the form doesn't submit");
return false;
}
}
Вот форма:
<form enctype="multipart/form-data" onsubmit="return onNewUserRegistrationCheck(this);"
class="registerFormStyles" name="registerForm" id="regform"
action="regTheNewUser.php" method="post">
<input type="text" id="loginname" name="<?php echo Labels::$USERNAMELABEL ?>"
style="width:260px" value="<?php echo Labels::$DEFAULTLOGINEMAILLABEL ?>" />
<input type="password" placeholder="<?php echo Labels::$DEFAULTPASSWORDLABEL ?>"
id="password" name="<?php echo Labels::$PASSWORD ?>"
style="width:220px" class="inactive" />
<input type="hidden" name="newUserRegister" id="newUserRegisterId">
<input type="image" name="registerButton" value="Register" class="login-button-landing"
onclick="document.registerForm.submit();">
</form>
Заметьте, я использую type = "image" и делаю программную submit ().Согласно некоторым сообщениям SO, результат программного submit (), который я делаю, таков: 'Браузеры не вызывают событие onSubmit в форме, если вы вызываете submit () программно'
Однако я вижу 2 окна с предупреждениями, когда нажимаю на кнопку псевдоподачи name = "registerButton":
alert box #1 pops up and says: "In onNewUserRegistrationCheck()"
затем ....
alert box #2 pops up and says: "returning false now, so -- HOPEFULLY the form doesn't submit"
ЭтиКогда я нажимаю кнопку с именем name = "registerButton" на форме, появляются 2 окна с предупреждениями.Поэтому я должен (?) Неправильно понять, что имеется в виду в постах, которые я прочитал, в которых говорится, что «вызов submit () не запускает событие onsubmit».
Суть в том, что форма все еще отправляетсяфайл "regTheNewUser.php", даже несмотря на то, что вы можете видеть, что 'return false' произошло из-за того, что было замечено предупреждающее сообщение ", возвращающее false сейчас, поэтому - НАДЕЖДА, что форма не отправляет"
Как я могу остановить отправку формы без с помощью кнопки type = "submit"?Я доказал себе, что мой onsubmit = "return onNewUserRegistrationCheck (this);" вызывается на 100%.Я возвращаю false, но форма все равно отправляется.
Как я могу остановить отправку формы, когда я нахожу неправильный текст в форме и почему «не вернуть false» выше ОСТАНОВИТЬ отправку формы?