2013-03-08 57 views
0

我有一個小插件jQueryValidate的問題。JqueryValidate問題;動態數字字段

這是非常簡單的:我只是想檢查我的形式有了這個插件,並出現一個小提示,如果值是錯誤的,或者如果一個字段爲空。我使用qTip2,效果很好!

但問題是,在某處的形式,我有領域的動態數量,其中,用戶必須輸入一個驗證代碼。我想檢查輸入的代碼是否存在於我正在使用的數據庫中,如果不是,則顯示一個小工具提示。

所以,我實現了,但我的問題是,我怎麼能做出領域的這種不確定的數量「動態」的規則,並使用來檢查,如果在數據庫中存在的代碼只有一個PHP文件?

這裏是我的形式與標準字段:

<form method="POST" action="" id="inscription-form" name="inscription-form" enctype="multipart/form-data"> 
    <p><input type="text" name="v_nom" id="v_nom" class="defaultInvalid" size=30 tabindex="1" value="nom" /><br /> 
    <input type="text" name="v_prenom" id="v_prenom" class="defaultInvalid" size=30 tabindex="2" value="pr&eacute;nom"/><br /> 
    <input type="text" name="v_adresse" id="v_adresse" class="defaultInvalid" size=30 tabindex="3" value="adresse"/><br /> 

[...]

在那裏我有字段的未定義的數字:

<input type="text" class="ticket-field" name="v_ticket_1" id="v_ticket_1" size=30 tabindex="9" value="ticket"/> 
<input type="text" class="ticket-field" name="v_ticket_2" id="v_ticket_2" size=30 tabindex="10" value="ticket"/> 

[...]

這裏是我的JS

myForm.validate({ 
errorClass: "errormessage", 
onkeyup: false, 
errorClass: 'error', 
validClass: 'valid', 

rules: { 

    v_nom: { required: true, minlength: 2 }, 
    v_prenom: { required: true, minlength: 2 }, 
    […] 

    v_ticket_1: { 
     remote: "includes/deindeal_check_tickets.php", 
     async: false 
    } 
}, 
messages: { 
    v_nom: { defaultInvalid: v_name_msg }, 
    v_prenom: { defaultInvalid: v_last_name_msg }, 
    […] 

    v_ticket_1 : { remote: "Coupon invalide"} 
}, 
success: function(error) { 

    setTimeout(function() { 
     myForm.find('.valid').qtip('destroy'); 
    }, 1); 
}, 

submitHandler: function(form) { 
    form.submit(); 
}, 

errorPlacement: function(error, element) {... 

等等......

到現在爲止,我的PHP文件只是返回true或false。這只是一個測試。

所以,我怎麼可以定義爲所有與類「票田」的字段只有一個規則,並且只使用一個其他的文件來檢查值?不幸的是,我無法在任何地方找到好的解決方案。任何建議是值得歡迎的!

謝謝! ;)

回答

0

使用rules方法的add函數來查找和設置所有ticket-field的規則。你可以這樣做後,你打電話驗證:

myForm.validate({ 
    //all your options and rules, but exclude anything about v_ticket_1 
}); 

$('.ticket-field').each(function(){ 
    $(this).rules('add',{ 
     remote: "includes/deindeal_check_tickets.php", 
    }); 
}); 
+0

太棒了!非常感謝你!它像一個魅力:) – LancelotKiin 2013-03-11 06:53:38