2010-04-23 21 views
6

jQuery validation özel yöntemlerine aşina olmaya çalışıyorum ve biraz kafam karışmış gibi görünüyor. Benim özel yöntemimin içindeki this.optional (element) neden her zaman false döndürüyor? Burada jQuery doğrulama this.optional (element) her zaman false

bir benim kod örneği:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.validator.addMethod('customemethod', function(val, el){ 
      return this.optional(el) || false; 
     }, 'custom method says its INVALID !'); 
     $('#myform').validate({ignore: '*[ignore]'}); 
     $('#validate').click(function(){ 
      $('#result').text($('#myform').validate().form()); 
      return false; 
     }); 
    }); 
</script> 
<form id="myform"> 
    <div><input type="text" id="customfield" name="customfield" /></div> 
    <script type="text/javascript"> 
     $(document).ready(function(){$('#customfield').rules('add', { required: true, customemethod: true }) }); 
    </script> 
    <div><input type="text" id="customfield2" name="customfield2" /></div> 
    <script type="text/javascript"> 
     $(document).ready(function(){$('#customfield2').rules('add', { required: false, customemethod: true }) }); 
    </script> 

    <div id="result"></div> 
    <input id="validate" type="submit" /> 
</form> 

durumda öğesi gerekli değilse ve değeri değil boş değil - doğrulama yöntemi denir ve ben bu durumda gerçek dönmek gerekir. Ama this.optional (el) her zaman yanlıştır :(

bunu çözebilir nasıl? I nasıl öğrenebilirim öğesi gerekli olmadığını içeride özel yöntemi? teşekkürler.

cevap

7

optional değeri false ise boş değil, bu yüzden alan üzerinde doğrulama gerçekleştirebilirsiniz, ancak sadece boş değilse.Örneğin, e-posta adresi isteğe bağlıysa, biçimi doğrulamanız gerekir, ancak yalnızca değer sağlanmışsa optional doğruysa değer sağlanmamış, bu yüzden değerlendirmenin geri kalanı gerçekleştirilemedi.Bu yöntemin amacı budur.Eğer boş değere ihtiyacınız varsa, gerekli ya da ihtiyacınız yoksa boş ya da değil Doğrulamaya gerek duyuyor

İlgili konular