2010-06-27 15 views
13

मैं jQuery सत्यापन (http://docs.jquery.com/Plugins/Validation) का उपयोग कर रहा है ताकि तरह:Jquery सत्यापन - बिना अग्रणी शून्य के नंबर की अनुमति दें?

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

उपयोगकर्ता एक नंबर में प्रवेश करती है तो बिना एक अग्रणी शून्य, जैसे .5 तो jQuery मान्यता कहते हैं, "एक वैध संख्या दर्ज करें।"

मैं अग्रणी शून्य की आवश्यकता के बिना संख्या प्रविष्टि की अनुमति देने के लिए सत्यापन कैसे बदल सकता हूं?

उत्तर

28

समस्या संख्याओं के लिए उपयोग की जाने वाली नियमित अभिव्यक्ति के साथ है। the latest version को देखते हुए, लाइनों 1021-1023, हम मिल गया है:

कि
number: function(value, element) { 
    return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); 
}, 

समस्या है यह पहली हिस्सा है, जो ऋणात्मक चिह्न और संख्या, या तो व्यक्ति या तीन के समूह अल्पविराम के द्वारा अलग में अग्रणी के लिए लग रहा है, है नहीं वैकल्पिक:

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

छोर पर एक ? Tacking यह वैकल्पिक कर देगा:

(?:\d+|\d{1,3}(?:,\d{3})+)? 
इस अपडेट के साथ

, आप या तो आप संशोधित कर सकते हैं r प्लगइन का स्थानीय प्रतिलिपि, संशोधित संस्करण के लिए नियमित अभिव्यक्ति बदल रहा है, या अपने जावास्क्रिप्ट के लिए एक replacement validation method जोड़ें: इस addMethod कॉल के साथ

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 सत्यापन विधि एक नंबर करने के लिए ओवरराइड कर दिया जाएगा सत्यापन जो एक अग्रणी शून्य की आवश्यकता नहीं है।

+0

धन्यवाद - इस महीने के लिए अनुत्तरित नहीं किया गया है! –

+0

कोई समस्या नहीं है। यह मुझे उस प्रणाली पर थोड़ा सा बनाता है जिसे मैं बना रहा हूं और उत्तर के लिए खोज कर रहा हूं, आपका प्रश्न मिला। मैंने प्लगइन निर्माता को रीजिक्स पर अपनी प्रतिक्रिया के लिए ईमेल किया है, और प्लगइन में फिक्स प्राप्त करने के बारे में कोई समस्या नहीं है। – boflynn

+0

बहुत उपयोगी उत्तर। समाधान में मुझे एक छोटी सी समस्या का सामना करना पड़ा: jQuery.validator.addMethod ("संख्यात्मक" ... jQuery होना चाहिए। Validator.addMethod ("संख्या" –

0

jQuery सत्यापन 1.14.0 में शामिल समाधान अग्रणी शून्य समस्या का ख्याल रखता है लेकिन एक प्रमुख नकारात्मक संकेत मुद्दा छोड़ देता है। -.124 अमान्य है। -0.124 मान्य है। उपर्युक्त पोस्टिंग में प्रदान किया गया RegEx -.124 की अनुमति देता है, इसलिए मैं jQuery सत्यापन में समाधान पर इसका समर्थन करता हूं 1.14.0

संबंधित मुद्दे