2010-06-27 13 views
13

Ben şöyle jquery doğrulama (http://docs.jquery.com/Plugins/Validation) kullanıyorum:JQuery doğrulaması - baştaki sıfır olmayan numaraya izin verilsin mi?

var $__field = $("#selector"); 
    if ($__field.is(":visible")) { 
     $__field.rules('add', { required: true }); 
     $__field.rules('add', { number: true }); 
    } 

kullanıcı numarası girerse başında sıfır olmadan örneğin 0,5 sonra jquery doğrulama "geçerli bir sayı girin." Diyor

Numara sıfırlama gerektirmeden sayı girişine izin vermek için doğrulamayı nasıl değiştirebilirim?

cevap

28

Sorun, sayı için kullanılan normal ifadedir. the latest version baktığımızda, çizgiler 1021-1023, elimizdeki:

bireysel ya da virgülle ayırarak üçlü gruplar halinde ya eksi işareti ve rakamlar, lider arar bu ilk yığın, bir
number: function(value, element) { 
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); 
}, 

sorun olduğunu isteğe bağlı değil:

(?:\d+|\d{1,3}(?:,\d{3})+) 

ucunda bir ? Tacking bu isteğe yapacaktır: Bu güncelleme ile

(?:\d+|\d{1,3}(?:,\d{3})+)? 

, ya sizi değiştirebilir Modifiye sürümüne normal ifade değiştirerek, eklentinin yerel bir kopyasını r veya javascript bir replacement validation method ekleyin: Bu addMethod çağrıyla herhangi sayfada

jQuery.validator.addMethod("number", function(value, element) { 
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); 
}, "Please enter a valid number."); 

, number doğrulama yöntemi bir dizi yapmak için geçersiz kılınacak önde gelen sıfır gerektirmeyen doğrulama.

+0

çözüm üzerinde lehine teşekkürler - bu aylarca cevapsız olmuştur! –

+0

Sorun değil. Bu, beni kurduğum bir sistem üzerinde ısırdı ve cevabınızı aradığınızda sorunuzu buldu. Eklenti yaratıcısıyla ilgili geri bildirimleri için eklentiyi ekledim ve sorun yoksa eklentiyi eklentiye eklemem için e-posta gönderdim. – boflynn

+0

Çok yardımcı yanıt. Çözümde karşılaştığım küçük bir sorun: jQuery.validator.addMethod ("sayısal" ... jQuery.validator.addMethod ("sayı") olmalıdır –

0

jQuery Validation 1.14.0'da bulunan çözüm, baştaki sıfır sorununun üstesinden gelir ancak önde gelen negatif bir işaret sorununu ortadan kaldırır. -.124 geçersiz. -0.124 geçerlidir. Yukarıdaki gönderme gönderme sağlanan RegEx -.124 izin verir gibi ben jQuery Doğrulama 1.14.0

İlgili konular