我正在尝试填写表格,并且在弹出警报时仍在提交。我如何停止提交?
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>
答案 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)
您的代码中有几个错误。
<button>
元素未自动关闭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;
}