Javascript 我试图通过使用onsubmit=returnvalidateform()在html标记中使用此验证

Javascript 我试图通过使用onsubmit=returnvalidateform()在html标记中使用此验证,javascript,jsp,Javascript,Jsp,//这是我正在使用的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 conpa

//这是我正在使用的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;
    }

    };

为了防止通过javascript提交,您必须在onsubmit处理程序中返回
false

因此,下一行中的
validateForm()
必须返回false:

<form action="reg.jsp"  name="myform" method="post" onsubmit="return validateForm()" >
前面的检查只是准备变量,但不返回它。
这就是你需要做的

下面是一个如何实现的示例:

else if(!this.form.checkbox.checked)
{
    alert('You must agree to the terms first.');
    return false;
}
else{

    return valid;
}
其他改进可以是:

  • 通过降低重要性对条件重新排序。
    例如:如果术语不被接受,则不重要,如果密码为空。
    如果密码为空,那么如果密码相同,则不重要
  • 使用html5,它有更多的输入类型和可调整的内置验证,用于常见情况。请参阅此处的更多信息:

onsubmit=“return validateForm()”这应该是onsubmit=“validateForm()”它仍然不起作用。请将html添加到问题中。这将更容易测试。
boolean valid=true不是javascript
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;    
};