2012-08-29 14 views
11

Bazı form üreteci tarafından, bir sayfada bir öğeler listesi oluşturulur ve bunların hepsinin üzerinde onayları vardır. Bir şekilde etkinleştirmek/Böyle bir element için doğrulama devre dışı bırakmak için dinamik bir şekilde olması gerekirjQuery ile Kesin Olmayan Doğrulama ile bir öğe için geçerliliği devre dışı bırakma

<input type="text" id="email" name="email" data-val-required="No valid email address!" data-val="true"> 

: Ben HTML kaynağında baktığınızda, ben böyle bir şey görüyorum. data-val özniteliğini false olarak ayarlayıp true'a dönmeyi/devre dışı bırakmayı denedim. Ama buna cevap vermiyor gibi görünüyor. Doğrulama her zaman var!

Belirli alanlardaki doğrulamaları dinamik bir şekilde nasıl etkinleştirebileceğimi/devre dışı bırakabileceğimi bilen herhangi bir fikri olan var mı?

cevap

37

Ben aslında daha iyi benim ihtiyaçlarına uyan bir çözüm buldu.

$(function() { 
    var settngs = $.data($('form')[0], 'validator').settings; 
    settngs.ignore = ".ignore"; 
}); 

Ve bununla i 'geçiş' i ekleyerek veya bir elementinden sınıfadı ignore kaldırarak istediğiniz herhangi eleman yapabilirsiniz: Ben aşağıdakileri yapabilirsiniz.

+1

Gerçekten güzel bir çözüm! :) –

+7

, varsayılan jquery doğrulama davranışını korumak için 'setting.ignore =": hidden, .ignore "ifadesini kullanmanız gerektiğini unutmayın." Kişisel olarak şunu eklemek istiyorum: devre dışı " –

+1

Kaynak: http://weblogs.asp.net /imranbaloch/archive/2011/07/13/overriding-unobtrusive-client-side-validation-settings-in-asp-net-mvc-3.aspx – WolfyUK

13

Bunun yardımcı olacağını düşünüyorum.

<div class="editor-field"> 
     @{ Html.EnableClientValidation(false); } 
     @Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" }) 
     @{ Html.EnableClientValidation(true); } 
</div> 
+1

Bu kabul edilen cevap olmalı! Diğer – JavierIEH

+0

@JavierIEH'den 2 yıl daha yeni Bu cevap sizin için daha yeni olabilir ve sizin için çalışmış olabilir, ancak yalnızca sayfa oluşturma zamanında çalışır. Uçucu istemci tarafında doğrulayıcıları etkinleştirmek/devre dışı bırakmak isteyen herkesin daha önceki cevabı kullanması gerekecektir. – mikeschuld

+0

İyi cevap, kullanıcının sahip olduğu soruna bağlı olarak değişebilir –

İlgili konular