एक सत्यापन पुस्तकालय लिखने का प्रयास करें लेकिन कहीं पर अटक गया। केवल एक बार अलर्ट कैसे करें, हालांकि वे 2 सत्यापन परत हैं?

var validation_event = {
    mandatory: function(that) {
      if (!$(that).val() && $(that).data('placeholder')) {
        alert('Please fill in ' + $(that).data('placeholder') + '.');
        return false;
      }
    },

    email: function(that) {

      var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      if ($(that).val() == '' || !regex.test($(that).val())) {
        alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.');
        return false;
      }
    }
  }

https://jsfiddle.net/wvzbq9h2/

सबमिट पर क्लिक करने का प्रयास करें, आप देखेंगे कि 2 अलर्ट हैं। इसके अलावा चीजें ठीक काम कर रही हैं।

0
Eunice Chia 22 जुलाई 2016, 10:52
1
यदि आप $.each से बाहर निकलना चाहते हैं तो आप return false का उपयोग कर सकते हैं jsfiddle.net/wvzbq9h2/ देखें। 3
 – 
fehrlich
22 जुलाई 2016, 10:56
यदि आप सभी संदेशों को दिखाना चाहते हैं तो आपको पहले उन्हें एकत्र करना होगा और फिर अंत में एक अलर्ट ट्रिगर करना होगा
 – 
fehrlich
22 जुलाई 2016, 10:57
यह सतर्क होना चाहिए ईमेल मान्य नहीं है, आपका उदाहरण काम नहीं करता है
 – 
Eunice Chia
22 जुलाई 2016, 10:59
इसलिए मैंने एक टिप्पणी पोस्ट की, क्योंकि मुझे यकीन नहीं है कि आप @Eunice-Cia प्राप्त करने का क्या प्रयास कर रहे हैं
 – 
fehrlich
22 जुलाई 2016, 11:01
यदि उपयोगकर्ता ने ईमेल दर्ज नहीं किया है, तो यह उपयोगकर्ता को सूचित करेगा कि दर्ज किया गया ईमेल पता खाली नहीं हो सकता है, यदि उपयोगकर्ता ने कुछ दर्ज किया है, लेकिन ईमेल मान्य नहीं है, तो उपयोगकर्ता को 'कृपया सुनिश्चित करें कि ईमेल मान्य है' का अलर्ट दिखाई देगा। .
 – 
Eunice Chia
22 जुलाई 2016, 11:07

3 जवाब

@XzenTorXz की बेला सही उत्तर है यानी https://jsfiddle.net/wvzbq9h2/3/

आपकी गलती यह है कि आपका सत्यापन अलर्ट के बाद झूठी वापसी कर रहा है, लेकिन आप कभी भी उस मान का उपयोग $.each को रोकने के लिए नहीं करते हैं। आपको पहले अलर्ट के बाद $.each को रोकना होगा।

0
Sumit Gupta 22 जुलाई 2016, 11:00
यह ईमेल मान्य नहीं है यह कहने का अलर्ट ट्रिगर नहीं करता है। बेला की जाँच करें
 – 
Eunice Chia
22 जुलाई 2016, 11:06
$(function() {
  var options = ['mandatory', 'email'];

  var validation_event = {
    mandatory: function(that) {
      if (!$(that).val() && $(that).data('placeholder')) {
        alert('Please fill in ' + $(that).data('placeholder') + '.');
        that.stopPropagation();
      }
    },

    email: function(that) {

      var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
      if ($(that).val() == '' || !regex.test($(that).val())) {
        alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.');
        that.stopPropagation();
      }
    }
  }
0
mujuonly 22 जुलाई 2016, 11:03
वह jQuery तत्व पास करता है, एक घटना नहीं इसलिए रोकें प्रचार काम नहीं करता है
 – 
fehrlich
22 जुलाई 2016, 11:05

यदि आप एक ही संदेश रखना चाहते हैं:

आप $.each से बाहर निकलने के लिए return false का उपयोग कर सकते हैं। आपको एक सफल सत्यापन पर भी सही लौटना होगा: https://jsfiddle.net/wvzbq9h2/4/

यदि आप एकाधिक संदेश दिखाना चाहते हैं (यदि एकाधिक सत्यापन विफल हो जाते हैं) तो आपको अपने संदेशों को एकत्रित करना होगा (उन्हें सत्यापन से वापस करना) और उन्हें समाप्त होने पर सतर्क करना होगा। देखें https://jsfiddle.net/wvzbq9h2/6/। आप 2 को भी जोड़ सकते हैं ताकि आपके पास प्रति फ़ील्ड केवल 1 संदेश हो, देखें: https://jsfiddle.net/ wvzbq9h2/7/

0
fehrlich 22 जुलाई 2016, 11:22