#info
//这是我正在使用它的html,但是它无法正常工作,它没有进行js验证并直接将我转发到reg.jsp页面。
//this is the javascript program for validation
function validateForm()
{
var name=document.myform.uname.value;
var password=document.myform.password.value;
var conpass = document.myform.repassword.value;
boolean valid = true;
if(password != conpass)
{
alert("password is not same");
valid=false;
}
else if(name==null || name=="")
{
alert("User Name should not be blank..");
valid=false;
}
else if(password==""|| password==null)
{
alert("Password should not be blank");
valid=false;
}
else if(!this.form.checkbox.checked)
{
alert('You must agree to the terms first.');
return false;
}
else{
return valid;
}
};
答案 0 :(得分:0)
为了防止通过javascript提交,您必须在onsubmit处理程序中返回false
。
因此,在以下行中,validateForm()
必须返回false:
<form action="reg.jsp" name="myform" method="post" onsubmit="return validateForm()" >
你有很多设置var valid = false
的if-else块,这没关系
但是应该返回此valid
变量。您只能在最后else
块中执行此操作。
else if(!this.form.checkbox.checked)
{
alert('You must agree to the terms first.');
return false;
}
else{
return valid;
}
之前的检查只是准备变量,但不要将其返回 这就是你需要做的。
以下是一个如何完成的示例:
function validateForm() {
var name=document.myform.uname.value;
var password=document.myform.password.value;
var conpass = document.myform.repassword.value;
var valid = true;
var message = "everything is valid";
if(password != conpass)
{
message = "password is not same";
valid = false;
}
else if(name==null || name=="")
{
message = "User Name should not be blank..";
valid = false;
}
else if(password==""|| password==null)
{
message = "Password should not be blank";
valid = false;
}
else if(!this.form.checkbox.checked)
{
message = "You must agree to the terms first.";
valid = false;
}
alert(message);
return valid;
};
其他改进可能是: