Форма отправляется, даже если JavaScript fun возвращает false

#javascript #jsp #submit

#javascript #jsp #Отправить

Вопрос:

Пожалуйста, проверьте код.html-форма отправляется, даже если javascript возвращает false.

 <form id="form1" name="form1"   method="post" action="sub.jsp" onsubmit="return getValue()">
<input type="text" id="userName" name="userName"   onkeyup="return getValue()" />
<input type="submit" name="Submit" value="Submit" />
</form>

    <script type="text/javascript" >
    function getValue()
      {
        var userName=document.getElementById("userName");
            document.getElementById("userNamemsg").innerHTML="";
              if(userName.value=="")
              {
             var mdiv=document.getElementById("userNamemsg");
                  mdiv.innerHTML="Error:Required Fields cannot be blank!";
                  form.userName.focus();
                  return false;
               }
              return true;   
     } 
  

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

1. Пожалуйста, обновите свой пример кода: (1) элемент script не закрыт, (2) Я не могу найти элемент userNamemsg (3) используйте userName.focus() вместо form.userName.focus();

Ответ №1:

1) попробуйте изменить строку form.userName.focus(); на document.form1.userName.focus();

или

2) попробуйте отправить из самой функции:

 <input type="button" name="Submit" value="Submit" onclick="getValue()" />

<script type="text/javascript" >
function getValue()
  {
        var userName=document.getElementById("userName");
        document.getElementById("userNamemsg").innerHTML="";
          if(userName.value=="")
          {
              var mdiv=document.getElementById("userNamemsg");
              mdiv.innerHTML="Error:Required Fields cannot be blank!";
              document.form1.userName.focus();//I think this is the problem
              return false;
           }
          document.form1.submit();
 }
 </script>
  

Ответ №2:

Я думаю, что в вашем коде JavaScript есть ошибки, которые происходят до ваших инструкций return . Исправьте эти ошибки, и ваш код должен работать.

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

1. 1 неопределенный ответ, но это правда: в таких функциях, как onsubmit или onclick, если ваш JavaScript выдает ошибку, форма будет отправлена или ссылка будет пройдена в любом случае. Если вы не включили окно ошибки при ошибках скрипта, может быть неясно, что произошло.

Ответ №3:

в качестве альтернативы вы можете настроить обработчик нажатия кнопки отправки так, чтобы он возвращал false.