2011-11-21 138 views
2

我正在使用jQuery驗證插件。我有3個字段,並且只有在 中的一個不爲空時才需要驗證它們,否則根本不驗證。jQuery驗證組驗證

<input type="text" data-validate="{validate:{required:true, 
messages:{required:'Flickr set is required'}}}" id="flickr_set" name="flickr_set"> 


<input type="text" data-validate="{validate:{required:true, 
messages:{required:'Flickr ID is required'}}}" id="flickr_id" name="flickr_id"> 

<input type="text" data-validate="{validate:{required:true, 
positiveNumber:true, messages:{required:'Photos count is required', 
positiveNumber:'Positive number is required'}}}" id="flickr_photos-count" name="flickr_photos-count"> 

回答

3

您需要使用驗證插件的dependency-callback方法。

什麼,這將讓你做的是:

使所需的元素,根據給定的回調的結果。

然後,您可以放置​​在3個字段,上面寫着基於從回調函數返回本場將只需要required驗證規則;然後你可以把領域的規則說需要這個領域,如果任何字段不爲空return true,或者若所有字段爲空並不需要這個領域return false

因此,如果任何字段都被填充了在他們都成爲必需的,如果他們都留空,他們都不需要。

rules: { 
    flickr_set: { 
     required: function(element) { 
      return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true); 
     } 
    }, 
    flickr_id: { 
     required: function(element) { 
      return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true); 
     } 
    }, 
    flickr_photos-count: { 
     required: function(element) { 
      return ($("#flickr_set").is(':empty') && $("#flickr_id").is(':empty') && $("#flickr_photos-count").is(':empty') ? false : true); 
     } 
    } 
} 
-2

就達一

$("form").validate(); 

,並給予輸入字段所需的類。

如果你想擁有你可以在上面的JavaScript更改爲自定義消息:

$("form").validate({ 
    messages : { 
     flickr_set : "Flickr set is required", 
     flickr_id : "Flickr ID", 
     flickr_photos-count : "Photos count is required" 
    } 
});