我想在某些文本框条目上运行javascript用户验证。
我遇到的问题是我的表单有进入我们网站内新页面的操作,而onsubmit
属性从不运行javascript函数。
是否有更好的解决方案,或使用以下代码的解决方案:注意:javascript文件写得正确,如果您将操作切换到checkRegistration()
,则可以正常工作。
这只是运行动作和javascript的问题。
<form name="registerForm" action="validate.html" onsubmit="checkRegistration()" method="post">
<!-- textboxes here -->
<!-- and submit button -->
</form>
答案 0 :(得分:53)
您应该通过onsubmit回调返回false来停止提交程序。
<script>
function checkRegistration(){
if(!form_valid){
alert('Given data is not correct');
return false;
}
return true;
}
</script>
<form onsubmit="return checkRegistration()"...
<强>更新强>
这里有完整的工作示例,只有当您将google写入输入时才会提交表单,否则会返回错误:
<script>
function checkRegistration(){
var form_valid = (document.getElementById('some_input').value == 'google');
if(!form_valid){
alert('Given data is incorrect');
return false;
}
return true;
}
</script>
<form onsubmit="return checkRegistration()" method="get" action="http://google.com">
Write google to go to google..<br/>
<input type="text" id="some_input" value=""/>
<input type="submit" value="google it"/>
</form>
答案 1 :(得分:7)
尝试
onsubmit="return checkRegistration()"
答案 2 :(得分:1)
尝试:
onsubmit="checkRegistration(event.preventDefault())"