jquery表单验证不能正常工作

时间:2014-03-05 04:57:58

标签: jquery forms validation form-submit

我为我的页面创建了一个小的jQuery表单验证,但我不知道问题出在哪里。

如果字段为空且event.preventDefault();不是数字,我会使用#phone停止提交表单。

但数字警报也不起作用。 :(

这是我的jQuery代码:

$(document).ready(function(){

    $( "#form" ).submit(function(e) {
        var f_name = $('#f_name').val();
        var l_name = $('#l_name').val();
        var phone = $('#phone').val();



        if(f_name == '') {
            alert('First Name feild is empty!');
            var tf_name = false;
        } else {
            var tf_name = true;
        }
        if(l_name == '') {
            alert('Last Name feild is empty!');
            var tl_name = false;
        } else {
            var tl_name = true;
        }

        if(phone == '') {
            alert('Phone feild is empty!');
            var tphone = false;
        } 
        if(phone) {
            $("#phone").keydown(function (e) {
                // Allow: backspace, delete, tab, escape, enter and .
                if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
                     // Allow: Ctrl+A
                    (e.keyCode == 65 && e.ctrlKey === true) || 
                     // Allow: home, end, left, right
                    (e.keyCode >= 35 && e.keyCode <= 39)) {
                         // let it happen, don't do anything
                         var tphone = true;
                         alert("You jast allow to use numbers!")
                         return;
                }
                // Ensure that it is a number and stop the keypress
                if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                    e.preventDefault();
                }
            });
        }

        e.preventDefault();
    });

});

这是我使用的HTML代码:

<form action="userC.php" method="post" id="form">
    <p>First Name: <input type="text" name="f_name" id="f_name" /></p>
    <p>Last Name: <input type="text" name="l_name" id="l_name" /></p>
    <p>Phone Number: <input type="text" name="phone" id="phone" /></p>
    <p><input type="submit" name="submit" /></p>
</form>

1 个答案:

答案 0 :(得分:2)

我建议使用jquery验证功能,这非常简单实用。

这是我的代码:

function FormValidate() {   
validator=$("#form").validate({
    rules: {
        "f_name":{
        required:true,
        minlength: 3
        },              
        "l_name":{
        required:true,
        minlength: 3
        },
        "phone":{
        required:true,
        number: true
        }
    },  
    messages: {
        "f_name":{
        required: "First name is required."
        },
        "l_name":{
        required: "Last name is required."
        },
        "phone":{
        required:"Phone is required.",
        number: "Please provide a valid phone number."
        }       
    }
    });
    x=validator.form();
    return x;
}

$(document).ready(function(){
   $( "#form" ).submit(function(e) {
    var chk = FormValidate();
if(!chk){
    return false;
}
 });

});