Javascript表单验证返回错误
我正在尝试做一个表单,当警报弹出时,它仍在提交。我如何让它停止提交Javascript表单验证返回错误,javascript,validation,Javascript,Validation,我正在尝试做一个表单,当警报弹出时,它仍在提交。我如何让它停止提交 函数验证(){ var first=document.register.first.value; 如果(第一个==“”){ 警告(“请输入您的姓名”); 第一,焦点(); 返回false; } 返回(真); } 提交 您最好在事物的前端使用required属性。它将“强制”用户在提交之前将文本输入到输入字段中。请注意,我在单词“force”周围加了引号,因为人们可以编辑HTML并绕过HTML required属性。因此,请绝
函数验证(){
var first=document.register.first.value;
如果(第一个==“”){
警告(“请输入您的姓名”);
第一,焦点();
返回false;
}
返回(真);
}
提交
您最好在事物的前端使用required
属性。它将“强制”用户在提交之前将文本输入到输入字段中。请注意,我在单词“force”周围加了引号,因为人们可以编辑HTML并绕过HTML required属性。因此,请绝对确保您正在验证PHP端的用户输入
有许多PHP表单验证的教程和示例,例如来自W3Schools和Medium
我认为问题在于按钮的
type=“submit”
。尝试将其更改为type=“button”
,使用onclick
函数,如果validate()
返回true
编辑:Arjan提出了一个很好的观点,您应该使用
required
。但这回答了表单提交的原因。您的代码中有几个错误
元素不是自动关闭的focus
您在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>
功能验证(e){
var first=document.register.first.value;
console.log(document.register.first)
如果(第一个==“”){
警告(“请输入您的姓名”);
返回false;
}
返回(真);
}
sbmit
type=“submit”
指定按钮将提交与其关联的表单。您需要覆盖此默认行为来进行验证,然后告诉它提交。为什么要重新发明轮子?只需使用required
就可以了。无论如何,您必须在服务器端验证用户输入。是的,您提出了一个很好的观点,他应该使用required
。但他确实询问了为什么他的表单在检查他的validate()
函数之前提交onclick。如果他最后遇到的情况是,简单的必需的验证还不够(例如,如果选择了radio B,则字段a是必需的),那么知道这一点也很好。谢谢你,我对php有一些经验,所以我会试试你的suggestion@Kra9如果您遵循我提供的教程之一,您将完全可以。它们解释了必要的内容,还包括HTML。
<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>