2012-02-08 39 views
5

Tamam Çalıştığım jquery validation ile bir formum var ancak bunu bir adım daha ileriye taşımak istiyorum. Bir fişi kullanarak doğrular ancak yalnızca gönderilir. Bulanıklığı doğrulamak için bir yolun olup olmadığını merak ediyorum, böylece bir kişinin bir hata olup olmadığını öğrenmek için gönderene kadar beklemesi gerekmiyor.JQuery - Form Doğrulama - Onblur

<script> 
    $(document).ready(function(){ 
    $("#formid").validate(); 
    }); 
    </script> 

doğrulama çalışıyor: http://docs.jquery.com/Plugins/Validation

Ben js sayfanın en üstündeki dosyada takıp bunun altında ben js var dahildir:

ben bu eklentiyi indirilen formu gönderdiğimde. Sadece her alanı bulanıklaştırmak için buna eklemem gerekeni merak ediyorum.

Eğer js görmeniz gerekiyorsa

ona bak ya yorumların bir grup vardır sayfasının alt kısmına doğru linkten burada da

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

indirebilirsiniz dosya. Bu yorumlardan bazıları, bulanıklaştırmayı ayarlama referansını sadece nasıl yapacağımı anlamıyordum. Herhangi bir yardım için teşekkür ederim.

cevap

0
<script> 
    $(document).ready(function(){ 
    $("#formid input, #formid select, #formid textarea").blur(function() { $('#formid').validate(); }); 
    }); 
</script> 
+0

Eklentiniz aşağıdakilere izin veriyorsa, bir alan düzeyinde doğrulama ekleyebilirsiniz: $ ('# formid') yerine validate(); '' $ (this) .validate(); ' –

3

Doğrulayıcı 'form' yöntemini kullanabilirsiniz, bkz. documentation.

Bu form doğrulama tetikler: İstiyorsan bulanıklık üzerinde

$('#formid').validate().form(); 

Bu özelliği kullanabileceğiniz:

$('#formid :input').blur(function() { 
    $('#formid').validate().form(); 
}); 
+0

Bu sizin için işe yararsa, OP, lütfen cevap olarak işaretleyin. – Kehlan

+0

Bunun çok iyi olduğunu sanmıyorum - bir bıçakla bir av tüfeğinize getiriyorsunuz :) '$ .validate()' adil bir iş yapıyor ve gerçekten bir kez * document.ready üzerinde çağrılmalıdır. '. validatorObj.element () 'doğru işlevdir. – Ryley

0

Sen true onfocusout option set (görmek için aşağı kaydırın) olmalıdır

$("#formid").validate({ 
    rules: { 
     // simple rule, converted to {required:true} 
     required: "required", 
    }, 
    onfocusout: true 
}); 
+0

Öneriniz için teşekkür ederiz. Bunu denedim ve hala sadece gönderilmeyi onaylıyorum. Bulanıklık ya da odaklanma yok. Başka önerileriniz var mı? Teşekkürler. – user982853

+0

Gerçekten de, beklediğiniz gibi çalışmaz - bu, ** geçersiz ** alanlardaki doğrulamayı zorlar, yani ilk geçersiz gönderimden sonra ve true varsayılan değerdir. – Ryley

6

Görebildiğim en iyi yol, eac için bulanıklık olayında $.validate.element(selector) kullanmaktır.

Sonra
var v = $('#formid').validate(); 

kurulum bulanıklık olaylar:

$('#firstName').blur(function(){ 
    v.element('#firstName'); 
}); 

yapıldığını burada bakınız: h elemanı bunun için davranış istiyorum http://jsfiddle.net/ryleyb/brUVZ/

2

eklentinin güncel sürümü 'validateOnBlur adında bir işlevi vardır 'ne istediğini yapacaksın.

Forma, #formid kimliğini uyguladıysanız kodunuz böyle görünmelidir. Onun github sayfanıza kafasına bazı katı dokümantasyon için

<script> 
    $('#formid').validateOnBlur(); 
</script> 

- https://github.com/victorjonsson/jQuery-Form-Validator

+0

Bu eklenti aslında oldukça iyi. Teşekkürler. – Neophile

0

Ben onun zaten çok geç ama yine de bu eklemek istediğiniz biliyorum.olay göndermek için doğrulama ayarlamak ve bulanıklaşmaya Çok kolay bir yoludur:

.input-error { 
    border-color: #FF1919; 
    box-shadow: 0px 0px 10px #FF1919; 
} 
.input-valid { 
    border-color:#009500; 
    box-shadow: 0px 0px 10px #009500; 
} 

Bir deneyin

$("#MainForm").validate({ 
      onfocusout: function (element) {      
       if ($(element).valid()) 
       { 
        $(element).removeClass('input-error').addClass('input-valid'); 
       } 
      },     

      invalidHandler: function (event, validator) { 
       $.each(validator.errorList, function (index, error) { 
        $(error.element).addClass('input-error'); 
       }); 
      }, 

      showErrors: function() { 
       //This function is kept blank so as to hide the default validation messages. 
      } 
     }); 

CSS.