2012-08-10 15 views
5

Aşağıdaki görünüme sahip:Mütevazi doğrulama veri val niteliklerini yok sayan ama sınıf ile çalışan = "required"

$("form").validate(); 

if ($("form").valid()) { 
    //... 
} 
: uyandırmasına her saniye çalışır aşağıdaki JavaScript ile

@using (Html.BeginForm()) 
{ 
    <div class="left-column"> 
     @Html.LabelFor(m => m.Expression) 
     @Html.TextAreaFor(m => m.Expression, new { @spellcheck = "false" }) 
     @Html.EditorFor(m => m.Sku) 
    </div> 
} 

metin alan elemanı için aşağıdaki html (tek unsur ihtiyaç doğrulama) oluşturur:

<textarea 
    data-val="true" 
    data-val-required="The Expression field is required." 
    cols="20" rows="2" 
    id="Expression" name="Expression" 
    spellcheck="false"> 
</textarea> 

problem, tarayıcı araçlarını kullanarak class = "required" öğesini manuel olarak eklemediğim sürece doğrulama işleminin bir şey yapmadığıdır. Bu doğrulama işlemini yaparsam ve "İfade alanı gerekli" hata mesajı görüntülenir. Kesin "$ (" form ") olmak için, textarea boş olduğunda bile geçerli()" her zaman true değerini döndürür. Otomatik olarak veri-valfı niteliklerini oluşturan açıklamalar kullanıyorum, ben bunlara güvenmek istiyorum. Neyi yanlış yapıyorum?

Bilginize benim komut ref şuna benzer:

<script src="/Scripts/modernizr-2.0.6-development-only.js" ... 
<script src="/Scripts/jquery-1.6.2.js" ... 
<script src="/Scripts/Parser.js" ... 
<script src="/Scripts/jquery.unobtrusive-ajax.js" ... 
<script src="/Scripts/jquery.validate.js" ... 
<script src="/Scripts/jquery.validate.unobtrusive.js" ... 
+0

Chrome ve IE9 hem oluşuyor web.config site çapında seti olabilir, benim doctype olan

+0

Formunuzda # paserForm işlevi var mı? Ayrıca, ASP.NET MVC sizin için 'validate' çağırıyor olmalı, kendiniz dememelisiniz. –

+0

Evet öyle, ancak gerçek JS kodu sadece açıkça $ ("form") üzerinde çalışır, açıkça çağırır parserForm bir şey değişip değişmediğini görmek için bir testti. Aynı için geçerli .validate() –

cevap

1

.NET için göze batmayan JavaScript ve İstemci Doğrulama etkin mü?

senin görünümünde aşağıdaki ayarlamayı deneyin:

@{ Html.EnableUnobtrusiveJavaScript(true); 
    Html.EnableClientValidation(true); 
    Html.ValidationSummary(true); 
} 

Ayrıca bu

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 
+2

Bende var! Şey, bunu hatırlamıyorum, ama orada, yani NuGet'in yaptığını farz ediyorum. Yine de, bu hala çözülmemiş bir soruna neredeyse bir ay içinde ilk öneridir, bu yüzden bunun için teşekkürler! –

İlgili konular