2013-05-20 9 views
5

मैं ब्राउज़र-साइड सत्यापन के लिए jquery सत्यापन प्लगइन का उपयोग करके एक साधारण रूप पर काम कर रहा हूं, और किसी कारण से मुझे अनजान लगता है जैसे ऐसा लगता है कि 'फ़ोनस' नियम लगता है शेष सत्यापन कोड तोड़ना।jQuery सत्यापन प्लगइन, फोनस फ़ील्ड फॉर्म तोड़ रहा है

तब तक जब तक फ़ील्ड ("टेल") फॉर्म पर खाली हो, सत्यापन मान्य के रूप में कार्य करता है। लेकिन अगर टेलीफोन क्षेत्र (पत्र सहित) में कुछ भी दर्ज किया गया है, तो सत्यापन छोड़ दिया गया है और फॉर्म सबमिट किया गया है, भले ही अन्य आवश्यक फ़ील्ड खाली हों। हालांकि, अगर कोड से 'फोनस' नियम निकाला जाता है, तो 'टेलि' इनपुट पर लागू अन्य सत्यापन नियम अभी भी लागू होते हैं। कहने की जरूरत नहीं है, मैं पूरी तरह उलझन में हूँ।

स्क्रिप्ट है:

<script type="text/javascript"> 
$(document).ready(function(){ 
$('#survey1').validate({ 
    rules: { 
    firstname: { 
      required: true, 
      },  

    lastname: { 
      required: true 
      }, 

    address1: { 
      required: true 
      }, 

    city: { 
      required: true 
      },  

    state: { 
      required: true 
      }, 

    zip: { 
      required: true, 
      digits: true 
      }, 

    tel: { 
      required: true, 
      phoneUS: true 
      }, 

    email: { 
      email: true 
      } 

    } 



    }); 
}); 

</script> 

लेबल और इनपुट फ़ील्ड स्क्रिप्ट मिलान नाम के साथ सिर्फ साधारण पाठ बॉक्स हैं। परिणामों को एक स्थिर ई-मेल पते पर ईमेल करने के लिए फ़ॉर्म एक्शन एक php फ़ाइल का उपयोग करने के लिए सेट है। यदि कोई अन्य जानकारी उपयोगी होगी, तो मैं इसे प्रदान करूंगा।

मैं jQuery के लिए अपेक्षाकृत नया हूं, इसलिए पॉइंटर्स (अनावश्यक पात्र इत्यादि) प्रदान करने में संकोच न करें।

धन्यवाद!

+0

संकेत के लिए आपके अनुरोध के बारे में

वैकल्पिक रूप से, अगर आप एक अन्य JavaScript फ़ाइल शामिल नहीं हैं, तो आप मैन्युअल रूप से सिर्फ phoneUS नियम/विधि जोड़ सकते हैं। मुझे पहली नज़र में कोई वाक्यविन्यास त्रुटियां नहीं दिखाई देती हैं, लेकिन सुझाव देते हैं कि आप आसानी से पढ़ने और डिबगिंग के लिए कोड को सही तरीके से इंडेंट करें। – Sparky

उत्तर

11

jQuery सत्यापन phoneUS फ़ंक्शन मानक के साथ नहीं आता है; आपको इसे जोड़ना होगा।

// Add US Phone Validation 
jQuery.validator.addMethod('phoneUS', function(phone_number, element) { 
    phone_number = phone_number.replace(/\s+/g, ''); 
    return this.optional(element) || phone_number.length > 9 && 
     phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
}, 'Please enter a valid phone number.'); 
+3

एफवाईआई, इससे कोई फर्क नहीं पड़ता कि 'validate()' से पहले या उसके बाद 'addMethod() 'जगह है। देखें: http://jsfiddle.net/AFpaC/ – Sparky

+1

आह! यह अब इतना आसान लगता है ... लेकिन शीघ्र उत्तर के लिए आपको दस लाख बार धन्यवाद! – hull4baloo

5

आप additional-methods.js file जो phoneUS नियम/विधि शामिल शामिल करने की जरूरत: इससे पहले कि आपके $('#survey1').validate() कोड, इस फ़ंक्शन को कॉल करें।

jQuery.validator.addMethod("phoneUS", function(phone_number, element) { 
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 && 
     phone_number.match(/^(\+?1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
}, "Please specify a valid phone number"); 

डेमो: http://jsfiddle.net/AFpaC/

+1

टिप के लिए धन्यवाद! यह अविश्वसनीय रूप से सहायक है। – hull4baloo

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