2014-07-07 84 views
4

我有驗證組的規則(需要3中的一個)。這工作正常,但是,我需要只有1的3要求取決於選擇的形式。jQuery驗證取決於組和要求

rules: { 
    cloudfront_7: { 
    require_from_group: { 
     depends: function(element) { 
     if ($("#classify").val() == "PIC"){ 
      return false; 
     } else { 
      return [1, ".verification-group"]; 
     } 
     } 
    } 
    }, 
    cloudfront_8: { 
    require_from_group: { 
     depends: function(element) { 
     if ($("#classify").val() == "PIC"){ 
      return false; 
     } else { 
      return [1, ".verification-group"]; 
     } 
     } 
    } 
    }, 
    cloudfront_9: { 
    require_from_group: { 
     depends: function(element) { 
     if ($("#classify").val() == "PIC"){ 
      return false; 
     } else { 
      return [1, ".verification-group"]; 
     } 
     } 
    } 
    } 
} 

我注意到,它只是返回的true而不是我寫的代碼,這是必要的require_from_group()功能。

+0

選擇或以其他方式PIC時,應該要求?導致看起來像'if else'返回語句反轉 –

+0

如果選擇了PIC,它不應該要求 –

+0

嘗試從'require_from_group'實際刪除嵌套'depends',它應該用作'require_from_group:[1,「.verification-group」 ],取決於:函數(元素){[..]}' –

回答

4

我解決了使用這些自定義規則問題:

var verDoc_required = { 
    cloudfront_7: { 
    require_from_group: [1, ".verification-group"] 
    }, 
    cloudfront_8: { 
    require_from_group: [1, ".verification-group"] 
    }, 
    cloudfront_9: { 
    require_from_group: [1, ".verification-group"] 
    } 
} 

$("#classify").change(function() { 
    if ($(this).val() == "PIC") { 
    removeRules(verDoc_required); 
    } else { 
    addRules(verDoc_required); 
    } 
}); 

function addRules(rulesObj) { 
    for (var item in rulesObj) { 
    $('#' + item).rules('add', rulesObj[item]); 
    } 
} 
function removeRules(rulesObj) { 
    for (var item in rulesObj) { 
    $('#' + item).rules('remove'); 
    } 
} 
+1

這似乎已經做到了!謝謝! – Dan

3

你可以試試這個代碼:

rules: { 
cloudfront_7: { 
require_from_group: { 
param: [1, "..verification-group"], 
depends: function(element) {return .....} 
     } 
    }, 
cloudfront_8: { 
require_from_group: { 
param: [1, "..verification-group"], 
depends: function(element) {return .....} 
     } 
    }, 
cloudfront_9: { 
require_from_group: { 
param: [1, "..verification-group"], 
depends: function(element) {return .....} 
     } 
    }, 
} 
+1

太棒了!我想這是正確的答案 – Andrea