JQuery适用于某些表单而不适用于其他表单

时间:2014-03-17 16:18:36

标签: php jquery jquery-validate

我在使用JQuery时遇到了一些问题。我为每个组件编写了一个索引文件的应用程序,如:account,admin等。在每个index.php中,我检查操作变量并包含一些其他php文件或表单。对于某些表单,我的验证代码适用于其他表单。

作为一个例子,我将在帐户组件中为您提供两个文件:

account_register :(不工作)

<script>
    // Required 

    $().ready(function() {
    $('<span style="color:red;">*</span>').insertAfter('.required');
    });

    $().ready(function(){
        $("#login_form").validate({
            rules: {
            login: {
                "required"
            },
            password: {
                "required"
            }
            },
 errorElement: "span",   
 errorPlacement: function(error, element) {
        error.insertAfter(element);
 }                
        });
    });   

并且工作一个:

account_register.php:

<script>
    // Required 

    $().ready(function() {
    $('<span style="color:red;">*</span>').insertAfter('.required');
    });

     // register_form geburtsdatum date   

    $().ready(function(){
        $( "#datepicker" ).datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: "-100:+0",
        dateFormat: 'yy-mm-dd'
        });
    });

    // register_form validate

    $().ready(function(){
        $("#register_form").validate({
            rules: {
            login: {
                required: true,
                remote: "validate_register_login.php"
            },
            name: "required",
            vorname: "required",
            sex: "required",
            geburtsdatum: {
                required: true,
                date: true
            },
            golfclub: {
                required: true
            },
            handicap: {
                required: true,
                number: true
            },
            password_1: {
                required: true,
                minlength: 6
            },
            password_2: {
                required: true,
                equalTo: "#password_1",
                minlength: 6
            },
            email: {
                required: true,
                email: true,
                remote: "validate_register_email.php"
            }
            },
            messages: {
                handicap: "Geben Sie bitte einen Punkt ein !",
                login: {
                    remote: jQuery.format("{0} is already in use")
                },
                email: {
                    remote: jQuery.format("{0} is already in use")
                }
            },
 errorElement: "span",   
 errorPlacement: function(error, element) {
     if (element.attr('type') === 'radio') {
        error.insertAfter(
        element.siblings('input[type="radio"][name="' + element.attr('name') + '"]:last'));
        }
    else {
    error.insertAfter(element);
    }
 }                
        });
    });    

知道什么是错的吗?

2 个答案:

答案 0 :(得分:0)

在你给的工作中

登录:{              required:true,

但是没有工作你给了

登录:{                 “必需的”

我相信必需:true是有效的。您可以在控制台中轻松解决这个问题,如上一条评论所述。

答案 1 :(得分:0)

您的格式无效....

rules: {
    login: {
        "required"  // <- invalid - cannot enclose this in braces
    },
    password: {
        "required"  // <- invalid - cannot enclose this in braces
    }
}

只有key: value对进入括号内;和逗号分开时多于一对,

{
    key: value,
    key: value,
    ....
}

所以你可以这样做...... (注意大括号和key: value对的配置)

rules: {
    login: "required",
    password: "required"
}

或像这样的长手...... (再次注意,您仍然有key:value对,但这次,value本身是额外的key:value

rules: {
    login: {
        required: true
    },
    password: {
        required: true
    }
}