2011-01-06 33 views
27

jQuery Validation eklentisini kullanıyorum ve 'message' hatayı görüntülemek için oluşturduğu öğe/kapsayıcıyı devre dışı bırakmak istiyorum.jQuery Doğrulama - Hata İletisini Gizle

Temel olarak, hata sınıfı için hata içeren giriş öğesi istiyorum, ancak hata iletisini içeren ek bir öğe oluşturmayın.

Bu mümkün mü?

Sadece bir CSS çözümünü düşündüm, ancak gerçekten öğenin hala oluşturulduğu gerçeğini düzeltmez mi? muhtemelen güvenli değil bu yüzden olsa da, doğrulama eklentinin iç donanım üzerinde dayanır

$("selector").validate({ 
    showErrors: function() { 
     if (this.settings.highlight) { 
      for (var i = 0; this.errorList[i]; ++i) { 
       this.settings.highlight.call(this, this.errorList[i].element, 
        this.settings.errorClass, this.settings.validClass); 
      } 
     } 
     if (this.settings.unhighlight) { 
      for (var i = 0, elements = this.validElements(); elements[i]; ++i) { 
       this.settings.unhighlight.call(this, elements[i], 
        this.settings.errorClass, this.settings.validClass); 
      } 
     } 
    } 
}); 

:

<style> 
label.simpleValidationError {display: none !important; } 
</style> 
+1

jQuery, i değilim, bunu – Hannes

+1

Maalesef gerçekleştirmek için kullandığınız ne yaptığını ve hangi detaya biraz daha gitmek zorunda kalacak jQuery Doğrulama eklentisini kullanarak: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – Sjwdavies

+0

~ Bu gerçekten fazladan bir bilgi eksikliği değil, bazı şeyleri açıklığa kavuşturuyor. Doğrulayıcıyı oluştururken (seçenekler bilge) ne yapıyorsunuz ve size verdiği verileri nasıl işliyorsunuz? – jcolebrand

cevap

5

Yalnızca vurgulayarak elemanını gerçekleştiren bir fonksiyona showErrors seçeneğini ayarlayabilirsiniz. En iyisi, eklentinin defaultHighlightElements() yöntemini defaultShowErrors() ile aynı şekilde göstermesidir, ancak durum böyle değildir (henüz).

69

kullanın boş fonksiyonu ile Validator errorPlacement seçeneği:

$("selector").validate({ errorPlacement: function(error, element) {} }); 

Bu etkin hiçbir hata iletileri yerleştirir.

+0

Benim için çalıştı !! – Ryan

+1

Benim için işe yaramadı :( – Jonathan

+0

+1 Buna hoş ve ters çözüm! Teşekkürler! – Jonny

5

Ayrıca bu kodu kullanabilirsiniz:

jQuery.validator.messages.required = ""; 

$("selector").validate(); 
2

Ben de aynı sorunu vardı. Hata mesajları istemedim, sadece dikkat edilmesi gereken form girdilerinin önemli noktaları. mesajlar zaten <?php $msj='""';?> gibi boş ama hala oluşturulan hata elemanları/etiket sonra kaplar .. Yani

hızla meydana gelmesini ben label.insertAfter(element); devletler tek satır yorum oluşturma jquery.validate.js dosyayı düzenleyen bu durdurmak için yaklaşık 697 +/- ..

Sadece bir noob'un geçici çözümü;) ama yaptı!

3

Ayrıca hata iletilerini gizlemek ve input alanlarımı ve textarea kırmızı hata durumunda açmak istiyorum.

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <title> Demo</title> 

    <script type='text/javascript' src='http://code.jquery.com/jquery-1.10.1.js'></script>  

     <script type='text/javascript' src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.js"></script> 


    <style type='text/css'> 
    .error { 
    border: 1px solid red; 
} 
    </style> 

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
$("#email_form").validate({ 
     rules: { 
     email: { 
      required: true, 
      email: true 
     } 
     }, highlight: function(input) { 
      $(input).addClass('error'); 
     }, 
    errorPlacement: function(error, element){} 
}); 
});//]]> 

</script> 


</head> 
<body> 
<form name="form" id="email_form" method="post" action="#"> 
    <div class="item" style="clear:left;"> 
     <label>E Mail *</label> 
     <input id="femail" name="email" type="text"> 
    </div> 
    Type invalid email and press Tab key 
</form> 

</body> 

</html> 
2
Ben label.valid görünümünün CSS kullanıyorum gibi

, label.error jquery validate olarak); kasanın jsfiddle sonlarını

http://jsfiddle.net/MFRYm/51/

ve tam çalışma kodu: Burada küçük bir örnek Bu düğme, formdaki bütün hataları, sol ve verileri temizlemiştir.

 <button onclick="$('label.error').css('display', 'none');return false;">Clear Error </button> 
+0

+1, güzel açıklama – SagarPPanchal

0
sadece CSS ile

En kolay çözüm:

label.valid { 
    display: none; 
} 
1

Muhtemelen çok daha basit ve semantik tercih çözüm

label.error { 
    position:absolute; 
    left:20000px; 
    top:0; 
    } 
input.error { 
    border:red 1px; 
} 

Yok JS gerekli , daha kolay yönetmek için ve birisi ile CSS kullanmak olacaktır bir ekran okuyucusu, bir şeyleri kaçırdıklarının bir göstergesi olacaktır.

+0

Ekran okuyucularında iyi bir nokta, bunu içine almalıyım hesabı daha sık! – SeanKendle

1

Başka bir doğrulama kitaplığı tarafından geliştirilen bir proje vardı, formun geçerli olup olmadığını kontrol etmek için özelliklerini kullanabilmek için validate kitaplığı eklemek istedim (kullanılan doğrulama kitaplığı bu özelliğe sahip değil)

Yalnızlığım: tıklama üzerindeki CDN

ve kullanım validate özelliği ile sadece eklenen doğrulamak kitaplığı:

$(document).on('click','#buttonID',function(){ 
    var form = $("#formID"); 
    form.validate(); 
    console.log(form.valid()); 
}); 

ve CSS kodu ekleyerek jquery validate tarafından gündeme getirdiğini hata iletileri gizlemeye çalıştı:

label.error{ 
    display: none!important; 
} 
0

Hata mesajını kaldıracak bir onfocus ve bir onkeyup ekleyebilirsiniz. görüntülemek veya hata mesajları her türlü yaratmaz sadece kendisi tarafından

$("selector").validate({ 
    onkeyup: false, 
    onfocusout: false 
}); 
İlgili konular