if jQuery Validation插件中的语句远程规则

时间:2014-05-28 20:29:44

标签: javascript jquery forms jquery-validate

我有两种形式:一种用于添加新用户,另一种用于用户数据修改。

表单基本相同,唯一的区别是当进行修改时,如果存在于数据库中,则不应检查用户名字段。

在Js文件中,我进行了字段验证。其中一个验证是检查数据库中是否已存在用户名。在修改中,不应考虑这一点。

这就是为什么我这么想,但它不起作用:

我用div id区分这两种形式。

(查看代码段add_user表单):

<div id="add_user">
  <form action="{site_url()}admin/updateFrontUser" id="form_sample_2" class="form-horizontal" method="post">

(查看代码段edit_user表单):

<div id="edit_user">
  <form action="{site_url()}admin/updateFrontUser" id="form_sample_2" class="form-horizontal" method="post">

然后:

(js文件摘要)

var algo = $('.add_user', form2);

form2.validate({
            errorElement: 'span', //default input error message container
            errorClass: 'help-inline', // default input error message class
            focusInvalid: false, // do not focus the last invalid input
            ignore: "",
            rules: {
                username: {
                    required: true, 
                    minlength: 2,
                    maxlength: 15,
                    pattern: "[A-z](([\._\-][A-z0-9])|[A-z0-9])*[a-z0-9_]*",
                    remote: {

                        data: function(){

                            if (algo) {

                                url: '/admin/checkUsername';
                                type: 'POST';

                            }; 
                        }                               
                    }                    
                },

它应该检查用户名是否存在的远程规则。该功能已经在我的admin.php中构建。在我提到修改之前,它之前有效。

所以要恢复,我该如何仅为新用户使用远程规则(我的意思是,使用添加表单时)?

1 个答案:

答案 0 :(得分:0)

请尝试以下规则

$().ready(function() {

                $("#id_frm").validate({
                    rules: {

                        "id_question": {
                           required: true
                        },
                        "id_number": {


                            required: function(){ return $('input:radio[name=id_question]:checked').val() == 'Yes' },
                            minlength: 10,
                            minlength: 10
                        },
                        "contact_method": {
                             required: function(){ return $('input:radio[name=id_question]:checked').val() == 'No' }
                        }


                    },
                    messages: {
                        "id_question": {
                            required: "Please choose if you have an ID or not."
                        },
                        "id_number": {
                            required: "Please Enter ID."
                        },
                        "contact_method": {
                            required: "Please choose a contact method."
                        }               

                    },

            });


        });