如何在html中调用js函数然后执行servlet?

时间:2017-07-15 16:11:08

标签: javascript html servlets

我有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;
	}
}

1 个答案:

答案 0 :(得分:0)

由于您在表单中定义了操作,因此浏览器将提交表单。如果您需要取消,则需要在传递给preventDefault()的事件上致电formValidation。要执行此操作,请调用此函数onclick="formValidation(event)",并在函数内执行此操作: function formValidation(event) { event.preventDefault() ... } 这样您就可以取消该活动,并且您的表格将不会被提交。 如果您以后决定提交它(如果验证通过),您必须使用document.registform.submit()之类的方法手动完成。

N.B。请记住,您只是在按钮单击时启动验证过程,而您的表单可以不同的方式提交,例如在其中一个文本输入中按下返回键。我建议改用onsubmit方法。