2011-11-08 6 views
8

Onkeyup veya onfocusout seçenekleri ile çalışan jquery doğrulama eklentisi almaya çalışıyorum. Bu seçenekleri her eklediğimde ve bunlardan birini tetiklediğimde bir hata alıyorum. Doğrulama formumu gönderirsem çalışır.f.settings [g] .call bir şeyle bir işlev değil ama doğrulama gönder

Çalıştığım formun yayınlanmasına gerçekten izin verilmiyor, ancak statik/js/alt dizinleri altındaki tüm j'ler ile bir dizinde yüklediğim çok basit bir formla benzer sorunlar oluşturdum.

Ben 1.9.0

Herkes herhangi bir düşünce var jquery 1.6.2 ve jquery doğrulama kullanıyorum?

<html> 
<script type="text/javascript" src="static/js/jquery.js"></script> 
<script type="text/javascript" src="static/js/jquery.validate.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 

    var validator = $('#submitform').validate({ 
     rules: { 
      name: 'required', 
      phone: { 
       required: true, 
       minlength: 12 
      }, 
      team: { 
       required: true, 
       minlength: 1 
      }, 
      fax: { 
       required: true, 
       minlength: 12 
      } 
     }, 
     messages: { 
      name: 'Your name is required', 
      phone: 'Your phone number is required', 
      team: 'Your extension number is required', 
      fax: 'Your fax number is required' 
     }, 
     // the errorPlacement has to take the table layout into account 
     errorPlacement: function(error, element) { 
      if (element.is(":radio")) 
       error.appendTo(element.parent().next().next()); 
      else if (element.is(":checkbox")) 
       error.appendTo (element.next()); 
      else 
       error.appendTo(element.parent()); 
     }, 
     onfocusout: true, 
     // specifying a submitHandler prevents the default submit, good for the demo 
     submitHandler: function() { 
      alert("submitted!"); 
     }, 
     // set this class to error-labels to indicate valid fields 
     success: function(label) { 
      // set as text for IE 
      label.html(" ").addClass("checked"); 
     } 
    }); 
}); 
</script> 

<form id="submitform" action="."> 

<label for="name">Your Name:</label> 
<input id="ins_name" type="text" name="name" maxlength="40" /> 

<label for="phone">Phone:</label> 
<input name="phone" maxlength="14" type="text" id="phone" /> 

<label for="extension">Extension:</label> 
<input name="extension" maxlength="10" type="text" id="extension" /> 

<label for="fax">Fax:</label> 
<input name="fax" maxlength="14" type="text" id="fax" /> 

<input type="submit" value="Submit"> 
</form> 
+0

Onfocusout'un bir işlev olması gerektiğini tahmin edeceğim. – AutoSponge

+0

Belgelere göre, yalnızca bir seçenek - http://docs.jquery.com/Plugins/Validation/validate#toptions – grantk

+0

seçenekleri, yapılandırma nesnesinin özellikleridir, değerleri herhangi bir şey olabilir. Bu durumda, bir olay işleyicisi (jQuery'de yaygındır) için olduğu ve yalnızca belgelenmediği (çoğu eklenti gibi) türün çalışması gerektiğini tahmin ediyorum. – AutoSponge

cevap

14

Yukarıda belirtildiği gibi, belgeler hatalı. Aslında, parametre olarak doğrulanan öğeyi kabul eden bir işleve onfocusout seçeneğini ayarlamanız gerekir. Orada bir çizgi onkeyup: true daha sonra ben false

onkeyup: false 

olarak değiştirdim ancak hata geliyor başladığında ben hala bilmiyorum

$("#form").validate({ 
    onfocusout: function(element) {$(element).valid()} 
}); 
1

benim durumumda: Burada bir çalışma kodu örneğidir.