我有html:
<body>
<div class="cover">
<form name="registform" action="doRegist" method="post" >
<input type="submit" value="regist" onclick="formValidation()">
</form>
</div>
<script src="resources/js/validation.js"></script>
</body>
我希望首先执行js函数“formValidation”,然后执行servlet“doRegist”,但我的程序忽略js函数。请帮忙
更新 JS:
function formValidation() {
var login = document.registform.userName;
if(validateLogin(login)) {
}
return false;
}
function validateLogin(login) {
var loginformat = /^[a-z]+([_]?[a-z0-9]+)$/i;
var loginlen = login.value.length;
if(loginlen < 5) {
alert("You have entered an invalid login!");
document.registform.userid.focus();
return false;
}
if(login.value.match(loginformat)) {
document.registform.userid.focus();
return true;
} else {
alert("You have entered an invalid login!");
document.registform.userid.focus();
return false;
}
}
答案 0 :(得分:0)
由于您在表单中定义了操作,因此浏览器将提交表单。如果您需要取消,则需要在传递给preventDefault()
的事件上致电formValidation
。要执行此操作,请调用此函数onclick="formValidation(event)"
,并在函数内执行此操作:
function formValidation(event) {
event.preventDefault()
...
}
这样您就可以取消该活动,并且您的表格将不会被提交。
如果您以后决定提交它(如果验证通过),您必须使用document.registform.submit()
之类的方法手动完成。
N.B。请记住,您只是在按钮单击时启动验证过程,而您的表单可以不同的方式提交,例如在其中一个文本输入中按下返回键。我建议改用onsubmit
方法。