OnSubmit JavaScript只对错误条目工作一次,不重复返回表单,而是提交第二次输入的错误值

dom events - OnSubmit JavaScript only working once for false entries, not repeating return to form, but submitting second time false values entered?

本文关键字:错误 返回 表单 提交 输入 第二次 一次 JavaScript 工作 OnSubmit      更新时间:2023-09-26

我是一个编程新手,可以用一些帮助来做,找不到任何线索,回答这个问题。

设置是我有一个HTML页面与一个JavaScript检查功能,目前用于测试开发。它被链接到Tomcat中的servlet。

问题是当我第一次输入错误时,得到警告消息并返回到HTML原始页面。

但是,如果我点击输入字段并再次输入错误。它提交表单,不发出警告或返回到原始表单?

有谁有解决方案,或者这是验证应该如何工作。

代码是:

<HTML><head><title>Creation of POs</title>
<H1>Purchase Order</h1>
<script type="text/javaScript">
function check() {
check = document.forms[0].SLine1.value;
if(check=="wrong"){
alert("enter correct info");
return false;
} else {
return true; }
}
</script></head><body bgcolour="yellow">
<form method="GET" action="Distest_session30a_vs1" onSubmit="return 
check()">
various inputboxes and messages
<table>
<tr><td><input type="text" name="SLine1"></td></tr>
various other lines of inputs boxes
</table>
<Input type="submit" value="Send now">
</form></body></html>

这就是你想要做的吗?

          <script type="text/javascript">
              function check() {
                                    check = document.forms[0].SLine1.value;
                                    if(check=="wrong")
                                     { 
                                       alert("enter correct info"); 
                                        return false;
                                     } 
                                     else if("right")
                                     {
                                       alert("right");
                                       return true; 
                                     }
                                } 
           </script>
          <form onsubmit="check()">
            <input type="text" id="SLine1">
                <input  type="submit">
         </form>

如果您不想在表单上提交表单,您可以使用onsubmit="javascript:your_validation_function()"。只有当your_validation_function()返回true时,表单才会被提交。

编辑_看你的HTML和js代码在一起,我发现你的问题。下面的js代码应该可以工作了:

function check(){ 
  var check = document.forms[0].SLine1.value; 
  if(check=="wrong"){ 
    alert("enter correct info"); 
    return false; 
  } 
  else{ 
    return true; 
  } 
} 

你的问题是,你忘记正确地声明check var内的函数。如果要使用变量,则需要使用var