jquery
  • jquery-validate
  • 2012-12-14 43 views 0 likes 
    0

    是否有可能通過通配符添加規則?我認爲這是不可能的設置規則是這樣的...jQuery驗證使用通配符查找目標字段的設置規則

    $("#form").validate({ 
         // errorLabelContainer: $("div#error"), 
         errorElement: "p", 
         errorClass: "form-error", 
         rules: { 
          $("input[name*='x.child']"): { 
           required: true, 
           minlength: 5 
          } 
         } 
    }); 
    
    +0

    您能否討論一下您認爲通配符要實現的內容?這將幫助用戶引導您朝正確的方向發展。我可以理解,如果你在右側有通配符,你的意圖是什麼,但左側讓我感到困惑 – thatidiotguy

    +0

    我在我的頁面上有多個輸入和選擇標籤,都帶有這樣的名字「x.child.1.0 .t「,」x.child.2.0.t「,」x.child.3.0.t「(以x.child開頭),所以我需要爲它們添加所需的規則:) – MyMomSaysIamSpecial

    +0

    爲什麼不給他們一個類? – Barmar

    回答

    6

    使用內置在rules()方法來添加規則。 See documentation.

    注:必須調用此方法後打電話.validate()

    jsFiddle DEMO

    $("#form").validate({ 
        errorElement: "p", 
        errorClass: "form-error" 
    }); 
    
    // the following method must come AFTER .validate() 
    $("input[name*='x.child']").each(function() { 
        $(this).rules('add', { 
         required: true, 
         minlength: 5 
        }); 
    }); 
    

    這種方法也可以是非常有用的,當你動態地添加字段到表單中。

    下面結合自定義messages:。請注意,格式爲內.validate()選擇添加規則時相比,略有不同...

    $("input[name*='x.child']").each(function() { 
        $(this).rules('add', { 
         required: true, 
         minlength: 5, 
         messages: { 
          required: "Required input", 
          minlength: jQuery.format("At least {0} characters are necessary") 
         } 
        }); 
    }); 
    

    如其他地方提到的,你也可以創建一個class和使用這樣的...

    jsFiddle DEMO

    HTML:

    <input type="text" class="myclass" name="whatever" /> 
    

    jQuery:

    $("#form").validate({ 
        errorElement: "p", 
        errorClass: "form-error" 
    }); 
    
    // the following method must come AFTER .validate() 
    $('#form').find('.myclass').each(function() { 
        $(this).rules('add', { 
         required: true, 
         minlength: 5, 
         messages: { 
          required: "Required input", 
          minlength: jQuery.format("At least {0} characters are necessary") 
         } 
        }); 
    }); 
    
    相關問題