JavaScript表单验证返回false错误

时间:2018-12-21 13:08:07

标签: javascript validation

我正在尝试填写表格,并且在弹出警报时仍在提交。我如何停止提交?

function validate() {
  var first = document.register.first.value;
  if (first == "") {
    alert("please enter your name");
    first.focus();
    return false;
  }
  return (true);
}
<body>
  <form name="register" action="testform.php" onsubmit="return(validate());">
    <input type="text" name="first" />
    <button type="submit" />Submit
  </form>
</body>

4 个答案:

答案 0 :(得分:1)

您在return()上添加了括号,然后在return(validate())上添加了括号,我们在调用该函数时使用了(),因此它可能考虑使用return的自定义函数,该函数返回未定义,并且在返回未定义时它忽略并继续执行。 验证的调用方式如何,但其响应不会返回到表单。

固定版本:

<head>
<script>
function validate(e) {
   var first = document.register.first.value;
   console.log(document.register.first)
    if( first == "" ) {
        alert( "please enter your name" ) ;
        return false;
    }
return(true);
}
</script>
</head>
<body>
    <form name="register" action="testform.php" onsubmit="return validate()">
        <input type="text" name="first" />
        <button type="submit" >sbmit</button>
    </form>
</body>

答案 1 :(得分:0)

最好在事物的前端中使用required属性。在提交之前,它将“强迫”用户在输入字段中输入文本。请注意,我在'force'一词周围加上了引号,因为您可以编辑HTML并避开HTML required属性。因此,请绝对确保您同时在PHP方面验证用户输入

存在许多有关PHP表单验证的教程和示例,例如W3Schools的this one和Medium的this one

<form name="register" action="testform.php">
  <input type="text" name="first" required/>
  <input type="submit" value="Submit"/>
</form>

答案 2 :(得分:0)

我认为问题出在按钮的type="submit"上。尝试使用submits your form如果type="button"返回onclick的{​​{3}}函数将其更改为validate()

编辑:Arjan很好,您应该使用true。但这回答了为什么表单提交。

答案 3 :(得分:0)

您的代码中有几个错误。

  1. <button>元素未自动关闭
  2. 您正在对输入的值而不是引发异常的输入元素调用focus

function validate() {
   var input = document.register.first;
   var text = input.value;   
    if( text == "" ) {
        alert( "please enter your name" ) ;
        input.focus();
        return false;
    }
    return true;
}