2012-01-02 53 views
0

我想添加類規則,但似乎沒有正常工作。jquery驗證器 - addClassRules

在提交表單時,它僅驗證第一個文本框,而第二個文本框的onblur則顯示錯誤。

$.validator.addClassRules({ 
    contactvalues: { 
     minlength: 10 
    }, 
    email: { 
     email: true 
    } 
}); 
$("#extracontacts").validate(); 

其中#extracontacts是FORM的ID。

這是(摘要)形式的HTML:

<form id="extracontacts" action="/toolbox/contact/manage/save" method="post"> 
    <input type="text" id="contacts_value_1" value="[email protected]" name="contacts_value[]" class="contactvalues email valid"> 
    <input type="text" id="contacts_value_2" value="testing" name="contacts_value[]" class="contactvalues email">   
</form> 

另外,如果我的document.ready修改後的輸入類(),我不得不召回$("#extracontacts").validate();

+0

? – 2012-01-02 23:16:44

+0

@AndreaTurri使用PHP,它有什麼區別? :s – hex4 2012-01-03 17:10:37

+0

是的,asp.net以不同的方式呈現ID。我的代碼顯示瞭如何獲取該ID。如果你使用php不是問題。 – 2012-01-03 21:17:27

回答

0

試試這個方法,你還需要一個輸入提交表單(我提交輸入ID將只是「sumbit_form」):

function InitValidations() { 

    function setContactsRules() { 

     $('#contacts_value_1').rules('add', { 
      required: true, 
      email: true, 
      messages: { 
       required: 'please type your email', 
       email: 'please type a valid email' 
      } 
     }); 

     $('#contacts_value_2').rules('add', { 
      required: true, 
      messages: { 
       required: 'please type something' 
      } 
     }); 

    $('#submit_form').click(function (event) { 

     var isValid = $("#extracontacts").validate(); 

     setContactsRules(); 

     if (!isValid) { 
      event.preventDefault(); 
     } 

    }); 

} 

$(document).ready(function() { 

    InitValidations(); 

}); 

希望它能幫助。問候。

+0

關於SO的答案預計會針對這個問題,而不是OP必須修改以適應他的需求的其他代碼。 – Sparky 2012-01-03 00:29:00

+0

這是一個有效的例子。只需比較步驟。 – 2012-01-03 21:18:27

+0

我沒有說這是一個無效的例子。我說它並沒有特別回答這個問題。只需重新格式化它,以便它完全回答他的問題,而且沒有人需要比較任何步驟。 – Sparky 2012-01-03 21:29:18

0

試試您使用PHP或asp.net做你的驗證這樣

$(function(){ 
$("#extracontacts").validate({ 
rules: { 
    name: { 
    required: true, 
    minlength: 3, 
    maxlength: 50, 
},  


messages: { 
    name: { 
     required: "Your name is Required input", 
     minlength: "The Postman demands at least {3} characters", 
     maxlength: "Please, no more than {50} characters" 
    }, 
}); 
}); 
+0

使用該名稱的問題是,輸入驗證的名稱有括號'[]'在你的情況是無效的,但無論如何,我不能使用名稱因爲我將通過javascript刪除/添加/更改輸入及其驗證...所以最好使用類 – hex4 2012-01-03 17:33:29

+0

這些名稱只是一個示例,它並未針對您的特定文本進行配置。重點是在同一個腳本中驗證並添加規則 – Brad 2012-01-05 16:45:58