我试图通过使用onsubmit = return validateForm()在我的html标签中使用此验证

时间:2017-01-06 07:46:31

标签: javascript jsp

#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;
    }

    };

1 个答案:

答案 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;    
};

其他改进可能是:

  • 通过降低重要性重新排序条件 例如:如果未接受Term,则密码为空时不重要 如果密码为空,则如果conpass相同则不重要。
  • 使用html5,它具有更多输入类型和常见案例的可调内置验证。点击此处:http://html5doctor.com/html5-forms-input-types/