jquery-validation如何更改规则

时间:2014-04-29 09:19:15

标签: jquery-validate

字段 pesel nip 位于一个组中。用户必须填写两个字段中的一个,然后不需要secend字段。但是当用户点击提交按钮时,函数pesel或nip是调用。如何将规则从true更改为false。

例如: 当用户正确填写字段(例如pesel)时,则在规则中将值nip从true更改为false。

我的代码:

jQuery.validator.addMethod("require_from_group", function(value, element, options){
var numberRequired = options[0],
selector = options[1],
$fields = $(selector, element.form),
validOrNot = $fields.filter(function() {
    return $(this).val();
    }).length >= numberRequired,
    validator = this;
    if(!$(element).data('being_validated')) {
    $fields.data('being_validated', true).each(function(){
           validator.valid(this);
         }).data('being_validated', false);
}
if (validOrNot) {
$(selector).each(function() {
$(this).removeClass('error');
$('label.error[for='+$(this).attr('id')+']').remove();
});
}
return validOrNot;
}, jQuery.format("Jedno z pol jest wymagane."));

规则:

 submitHandler:function(form) {
         SubmittingForm();
 },
 rules: {

 numer_budynku: {
 required: true
 },
 pesel: {
    require_from_group: [1,".at_least_one"],
    pesel:true                    
    },
    nip: {
      require_from_group: [1,".at_least_one"],
      nip:true
    },
    sid: {
       required: true,
       sid:true
    }

寻求帮助。

1 个答案:

答案 0 :(得分:0)

您不能将nip:true作为key:value对放在此处,因为它没有任何意义。 nip不是常规。

nip: {  // < - name of field
    require_from_group: [1,".at_least_one"],  // <- rule declared
    nip:true    // <- meaningless, REMOVE THIS LINE
},

require_from_group规则已内置于the additional-methods.js file中,因此您无需自行编写。只需包含该文件。


引用OP

  

“字段pesel和nip在一个组中。用户必须填写两个字段之一,然后不需要secend字段。”

这就是require_from_group方法/规则的用途。

  

“但是当用户点击提交按钮,函数pesel或nip是调用。如何将规则从true更改为false。”

将规则从true更改为falserequired规则?您未在requirednip上使用pesel规则,而require_from_group规则自动会生成一个字段required。填写一个字段时,另一个字段不再是required

  

“例如:当用户正确填写字段(例如pesel)时,则规则会将值nip从true更改为false。”

您无法将nippeseltrue更改为false,因为nippesel无法从true更改1}}到false。它们不是此插件的预定义方法/规则。这是可接受的格式......

rules:  {               // <- the plugin OPTION
    myField:            // <- the field's NAME attribute
        method: param   // <- the RULE and its accepted PARAMETER(s)
    }
}