2009-11-30 6 views
7

Şu anda bir formu doğrulamak için validate eklentisini kullanıyorum (ASP.Net denetimlerini kullanarak). Ben form.validate yöntem ie içindeki standart kurulumdan kuralları çalmıştır:JQuery validate, kural olarak dinamik olarak ekle

$("form").validate({ 

    rules: { 
     ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0: "required" 
    } 

}); 

Şimdi tıklandığında hangi tuşa bağlı ruless eklemek çeşitli işlevlerde bunlardan var. Bu metin kutuları için iyi çalışır, ancak eklentiyi kuralı eklemeye çalıştığında bir RadiobuttonList için elemanın tanımsız olduğunu söyleyen bir hata vardır.

function addRuleSet() { 
    $("#ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0").rules("add", { required: true }); 

}

Sorun ben radyo düğmeleri bir kimlik (daha ziyade ait grubunu tanımlamak için (asp $ koyar) adı özelliğini kullanmak, ama statik içinde olduğumu düşünüyorum Tüm elemanlar isim niteliği kullanılarak tanımlanır.Neyse ben ilgili radyo düğmeleri bir grup için bir kural ekleyerek etrafında almak için emin değilim, herhangi bir tavsiye takdir edilecektir

PS Ben gerçekten RadioButtonList çağırmak gerekir bireysel radyo düğmelerinden (

cevap

9
)

Ayrıca, öğeye sınıflar ayarlayarak bir kural uygulayabilirsiniz. Örneğin, bir girdiye "gerekli" sınıfı verirseniz, o kural için gerekli kural uygulanır. Bunu yapmak için, denetimdeki CssClass özelliğini kullanırsınız. Sınıfın konteynere değil, oluşturulan girdi öğelerine uygulandığından emin olmak için RadioButtonList gibi bileşik denetimleri denemeniz gerekebilir. Bununla ilgili bir sorununuz varsa, bunu yapmanın bir yolu, sayfa bir seçiciye dayalı olarak yüklendikten sonra jQuery'yi kullanarak sınıf eklemek olabilir.

<asp:RadioButtonList id="RadList" runat="server" CssClass="required"> 
    ... 
</asp:RadioButtonList> 

veya bir kompleks için

<script type="text/javascript"> 
    $(function() { 
      $(':radio').addClass('required'); 
      $('form').validate(); 
    }); 
</script> 

, sınıf tabanlı kuralı addClassRules kullanarak yeni kurallar ekleyebilir. sürüş Bunun gün sonra

<script type="text/javascript"> 
    $(function() { 
     $.validator.addClassRules({ 
      range0to10: { 
        range: [0, 10] 
      }, 
      name: { 
        minlength: 2, 
        required: true 
      } 
     }); 
     $('form').validate(); 
    }); 
</script> 

<form ... > 
<input type="text" name="rating" id="rating" class="range0to10" /> 
<input type="text" name="firstName" id="firstName" class="name" /> 
<input type="text" name="lastName" id="lastName" class="name" /> 
</form> 
+0

Evet, bunun için teşekkür ediyorum, bunun gibi basit kurallar için işe yarayacak, ancak menzil gibi bir şeyi tanımlayabilecek misiniz? [0,10]? – Monkeeman69

+0

Aslında, addClassRules yöntemini kullanırsanız zor değil. Güncelleme yapacağım. – tvanfosson

+0

Teşekkürler görmek güzel olurdu. – Monkeeman69

1

beni deli, soru beni düzgün dönen elemanı nasıl düşünerek, ve ben de bunu yapmak için izin verir staright uzağa başvuran bu yöntem ile karşılaştı var soran:

$("input:radio[name='ctl00$ContentPlaceHolder1$dgQuestions$ctl14$iRadList_Col0']").rules("add", { required: true }); 
+5

not: bu seçiciyi $ ("input: radio [name $ = 'iRadList']") olarak kısaltabilirsiniz. Rules ~ $ after name, iRadList ile biten herhangi bir elemanı seçer <- –

+0

'u okumak daha kolay Akıllı bir ipucu Bobby. –