2013-07-29 8 views
6

मैं अब कुछ घंटों के लिए इस पर काम कर रहा हूं और इसे काम नहीं कर सकता। मुझे उसी इनपुट फ़ील्ड में, हमारे क्लाइंट सेक्शन में एक से अधिक ईमेल की आवश्यकता है।jQuery में 2+ (एकाधिक) ईमेल मान्य पाठ इनपुट

अभी मैं (जो एक ई-मेल के लिए महान काम करता है) है:

<script language="JavaScript"> 
$(document).ready(function(){ 
    $("form#editclient").validate({ 
      rules: { 
      Contact: { 
       required: true 
      }, 
      Clientname: { 
       required: true 
      }, 
      ClientLogin: { 
       required: true 
      }, 
      ClientPassword: { 
       required: true 
      }, 
      email: { 
       required: true, 
       multiemail: true 
      } 
     }, 
     messages: { 
      Contact: { 
       required: "Please enter your Contact Nmae." 
      }, 
      Clientname: { 
       required: "Please enter your Client Name" 
      }, 
      ClientLogin: { 
       required: "Please enter a login." 
      }, 
      ClientPassword: { 
       required: "Please enter a password" 
      }, 
      email: { 
       required: "Please enter an Email Address", 
       multiemail: "You must enter a valid email, or comma separate multiple" 
      } 
     } 
}); 
}); 
</script> 
    <input type="Text" id="email" name="Email" value="#Trim(Email)#" maxlength="60" class="inputText430 email required"> 

मैं इस जिनमें एक से अधिक सत्यापनकर्ता काम कर पाने के लिए माना जाता है मिल गया था:

jQuery.validator.addMethod(
"multiemails", 

function (value, element) { 
    if (this.optional(element)) // return true on optional element 
    return true; 
    var email = value.split(/[;,]+/); // split element by , and ; 
    valid = true; 
    for (var i in email) { 
     value = email[i]; 
     valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element); 
    } 
    return valid; 
}, 

jQuery.validator.messages.multiemail); 

लेकिन मैं नहीं कर सकता इसे ठीक से काम करने के लिए मिलता है। क्या कोई मुझे एक टेक्स्ट फ़ील्ड में 2 या अधिक ईमेल मान्य करने की क्षमता प्राप्त करने में सहायता कर सकता है?

अग्रिम धन्यवाद।

समाधान

<form> 
    <input id='emailTest' name='emailTest' /> 
    <input type='submit' /> 
</form> 
    <script type="text/javascript"> 
    jQuery.validator.addMethod(
    "multiemail", 
    function (value, element) { 
     var email = value.split(/[;,]+/); // split element by , and ; 
     valid = true; 
     for (var i in email) { 
      value = email[i]; 
      valid = valid && jQuery.validator.methods.email.call(this, $.trim(value), element); 
     } 
     return valid; 
    }, 
    jQuery.validator.messages.multiemail 
); 

$("form").validate({ 
    debug: true, 
    rules: { 
      emailTest: { 
       multiemail: true 
      } 
     }, 
    messages: { 
      emailTest: { 
       multiemail: "You must enter a valid email, or comma separate multiple" 
      } 
     }, 
    submitHandler: function(form) { 
      return false; 
     } 
}); 
+0

यह सही तरीके से कैसे काम नहीं करता है? क्या आपको एक त्रुटि संदेश मिलता है, क्या फ़ंक्शन को कॉल नहीं किया जाता है? मुझे एक त्रुटि पर संदेह है क्योंकि आपके पास addMethod फ़ंक्शन में एक paramater के रूप में 'jQuery.validator.messages.multiemails' है लेकिन मुझे आपके कोड में इसकी परिभाषा दिखाई नहीं दे रही है, इसलिए आपको शायद एक अपरिभाषित चर त्रुटि मिल रही है। –

+0

कंसोल में कोई त्रुटि नहीं आती है, और ईमेल फ़ील्ड की प्रमाणीकरण सामान्य की तरह काम करती है, क्योंकि केवल 1 ईमेल को वैध के रूप में पहचाना जाएगा। –

उत्तर

11

मुझे लगता है कि आप हो रहा कोड में कुछ अर्थ त्रुटियों जो कुछ बातें करने के लिए नेतृत्व कर रहे हैं नहीं (नीचे समाधान के साथ संपादित) (नियमों और संदेशों में multiemail जोड़ने के लिए संपादित) उम्मीद।

मैंने आपके कस्टम हैंडलर को टाइप के बजाय नाम से मैदान में मैप करके काम करने में कामयाब रहा है - मुझे यकीन नहीं है कि ओवरराइड प्लगइन में काम करता है।

rules: { 
    emailTest: { 
     multiemail: true 
    } 
} 

इसके अलावा हैंडलर में, आप multiemails पहचानकर्ता के रूप में किया था और बाद में यकीन नहीं था कि एक प्रभाव का कितना multiemail के रूप में यह कहा जाता है,।

यहां पूर्ण कामकाजी उदाहरण है: http://jsfiddle.net/jbergler/7jXn7/2/

+1

बहुत बहुत धन्यवाद! एक बार मेरे पास काम करने का उदाहरण था, मैं देख सकता था कि क्या गलत हो रहा था। आपकी बहुत सी सीधी मदद की सराहना की जाती है। समाधान के साथ ऊपर अद्यतन होगा। –

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