使用jquery提交表单时无法验证

时间:2015-01-30 12:00:53

标签: jquery

我使用jQuery创建了表单验证。提交表单时遇到问题。我只能对必填字段进行验证。在必要的字段验证后,它会自动提交表单,但我想要做电子邮件字段验证,字母验证等所有事情。

这是我的代码:

$(document).ready(function(){
  $('#userform').validate({
    rules: {
        firstname: "required",
        lastname: "required",
        sex: "required",
        qualification: "required",
        email: "required",
        password: "required",
    },
    messages: {
        firstname: "Please enter your first name",
        lastname: "Please enter your last name",
        sex: "select gender",
        qualification: "select qualification",
        email: "enter valid email id",
        password: "Password must be required"

    },
    submitHandler: function(form) {

        $txtfname = $('#txtfname').val()
        $txtlname = $('#txtlname').val()
        $txtemail = $('#txtemail').val()
        $txtpasswd = $('#txtpasswd').val()
        $txtcpasswd  = $('#txtcpasswd').val()
        if(!($txtfname.match(/^[a-zA-Z\s]+$/)))
        {
            $('.errfname').text("only alphapets");
        }
        else
        {
            $('.errfname').text("");
        }

        if(!($txtlname.match(/^[a-zA-Z\s]+$/)))
        {
            $('.errlname').text("only alphapets");
        }
        else
        {
            $('.errlname').text("");
        }

        $valemail = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        if($valemail.test($txtemail))
        {
            $('.erremail').text("");
        }
        else
        {
            $('.erremail').text("Invalid email address");
        }

        if($txtpasswd != $txtcpasswd)
        {
            $('.errcpasswd').text("Password doesn't match");
        }
        else
        {
            $('.errcpasswd').text("");
        }
        form.submit();
    }



  });


 });

任何人都可以帮助我这样做。提前致谢

1 个答案:

答案 0 :(得分:0)

你遇到的问题是表单的submitHandler将始终到达form.submit();所以无论出现什么,如果必填字段都已完成,表单将提交。

如果您在submitHandler中进行了验证,那么如果部分验证失败,您应该有一些方法可以阻止它访问form.submit()部分。

另外,请确保您也在服务器上进行验证,以防提交表单而不进行验证。

submitHandler: function(form) {
        var doFormSubmit = true;    
        $txtfname = $('#txtfname').val()
        $txtlname = $('#txtlname').val()
        $txtemail = $('#txtemail').val()
        $txtpasswd = $('#txtpasswd').val()
        $txtcpasswd  = $('#txtcpasswd').val()
        if(!($txtfname.match(/^[a-zA-Z\s]+$/)))
        {
            $('.errfname').text("only alphapets");
            doFormSubmit = false;
        }
        else
        {
            $('.errfname').text("");
        }

        if(!($txtlname.match(/^[a-zA-Z\s]+$/)))
        {
            $('.errlname').text("only alphapets");
            doFormSubmit = false;
        }
        else
        {
            $('.errlname').text("");
        }

        $valemail = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        if($valemail.test($txtemail))
        {
            $('.erremail').text("");
        }
        else
        {
            $('.erremail').text("Invalid email address");
            doFormSubmit = false;
        }

        if($txtpasswd != $txtcpasswd)
        {
            $('.errcpasswd').text("Password doesn't match");
            doFormSubmit = false;
        }
        else
        {
            $('.errcpasswd').text("");
        }
        if (doFormSubmit)
        {
            form.submit();
        }
    }