use*_*625 2 javascript java servlets
我试图验证表单,然后调用一个servlet,它失败,因为表单不会validete.我在下面粘贴了一些代码.你能给我一些提示并帮助解决这个问题吗?
function validateForm()
{
if(document.frm.username.value=="")
{
alert("User Name can not be left blank");
document.frm.username.focus();
return false;
}
else if(document.frm.pwd.value=="")
{
alert("Password can not be left blank");
document.frm.password.focus();
return false;
}
}Run Code Online (Sandbox Code Playgroud)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="/LoginExample/css/style.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/JavaScript" src="/LoginExample/js/validation.js"></script>
<title>Login example</title>
</head>
<body>
<form name="loginform" action="login" method="post" onSubmit="return validateForm();">
<p> Enter user name: <input type="text" name="username"><br>
Enter password: <input name="password" type="password"><br>
<input type="submit">
</p>
</form>
<a href="register.jsp"><input type="button" value="register" name="Sign in"></a>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
更改您的javascript函数如下,
function validateForm(event)
{
event.preventDefault(); // this will prevent the submit event.
if(document.loginform.username.value=="")
{
alert("User Name can not be left blank");
document.loginform.username.focus();
return false;
}
else if(document.loginform.password.value=="")
{
alert("Password can not be left blank");
document.loginform.password.focus();
return false;
}
else {
document.loginform.submit();// fire submit event
}
}
Run Code Online (Sandbox Code Playgroud)
另外,在函数调用中传递submit事件,如下所示,
<form name="loginform" action="login" method="post" onSubmit="return validateForm(event);">
Run Code Online (Sandbox Code Playgroud)
Crowder提供的方法很好,但如果验证失败,您可能还必须处理被触发的提交事件.