检查输入电子邮件值是否与其他输入电子邮件值相同

时间:2016-03-01 13:47:06

标签: javascript jquery

我尝试检查电子邮件的输入值是否与电子邮件的其他输入值相同。您可以添加像手风琴一样的人。所以每个人都有一封电子邮件。但是,两个或多个不可能在文本框中放置相同的电子邮件地址

我有这个:

 $(document).ready(function() {
   // Form validation
   $(".klantregistratie form").validate({
     rules: {
       verploegen_form_klantregistratie_Bedrijfsnaam: "required",
       verploegen_form_klantregistratie_Postcode: "required",
       verploegen_form_klantregistratie_Plaats: "required",
       verploegen_form_klantregistratie_Emailadres: {
         required: true,
         email: true
       },
       verploegen_form_klantregistratie_KvK_nummer: "required",
       verploegen_form_klantregistratie_naam_eigenaar: "required",
       verploegen_form_klantregistratie_Telefoon_mobiel: "required"
     },
     messages: {
       verploegen_form_klantregistratie_Bedrijfsnaam: "De bedrijfsnaam is niet ingevuld",
       verploegen_form_klantregistratie_Postcode: "De postcode is niet ingevuld",
       verploegen_form_klantregistratie_Plaats: "De plaats is niet ingevuld",
       verploegen_form_klantregistratie_Emailadres: {
         required: "Je hebt geen email adres ingevuld",
         email: "Je hebt geen geldig email adres ingevuld"
       },
       verploegen_form_klantregistratie_KvK_nummer: "Het KVK nummer is niet ingevuld",
       verploegen_form_klantregistratie_naam_eigenaar: "De naam van de eigenaar is niet ingevuld",
       verploegen_form_klantregistratie_Telefoon_mobiel: "Het (mobiele) telefoon nummer is niet ingevuld"
     }
   });

   // Hide the textarea
   $('#verploegen_form_klantregistratie_Contactpersonen').parent().parent().hide();

   $('input[name=FormCH1_h]').val(x);

   // Add extra contact clicked?
   $('#add-contact p a').click(function() {
     // Make a copy of the first input fields
     html = $('#new-contact').children().clone();

     // Get number of tabs in the accordion
     var index = $('#accordion h3').length;

     // Remove the values
     html.find("input[type=text]").val("");
     html.find('input[type=checkbox]').attr('checked', false);

     // New 'id', 'for' and 'name' attribute names
     html.find('input[type=checkbox]').each(function() {
       me = $(this);
       attr = me.attr('id');
       number = attr.split('_')[2];
       newNumber = parseInt(index) + 1;
       newAttr = attr.replace(number, newNumber);
       me.attr('id', newAttr).attr('name', newAttr).next().attr('for', newAttr);
     });

     // Insert it at the end
     $('#accordion').append(html);
     $('#accordion').accordion('refresh');

     // Set last tab to active
     $("#accordion").accordion({
       active: index
     });

     // Cancel the click
     return false;
   });

   // Submit clicked?
   $('.submit-button input').click(function() {
     // Set variables
     var html = '';
     var i = 1;

     // Loop through all the input fields for contacts
     $('#accordion .user-row').each(function(uindex, uvalue) {
       html += '<tr>';

       if (($('#contactpersonen-email').attr('value')) == $('#contactpersonen-email').attr('value')); {
         alert('the same');
       }

       $(this).find('input').each(function(index, value) {

         // Check if input type is a checkbox
         if ($(this).is(":checkbox")) {
           var JaNee = 'Nee';
           if ($(this).is(":checked")) JaNee = 'Ja';
           html = html + '<td>' + JaNee + '</td>';
         } else {
           // Add the value into the html
           html = html + '<td>' + $(this).val() + '</td>';
         }
       });

       html += '</tr>';
     });

     // Set the value from the textarea to the generated html
     $('#verploegen_form_klantregistratie_Contactpersonen').val('<table>' + html + '</table>');
   });
 });

 $(function() {
   $("#accordion").accordion({
     heightStyle: "content"
   });
 });

所以我试着这样比较:

if (($('#contactpersonen-email').attr('value')) == $('#contactpersonen-email').attr('value')); {
    alert('the same');
}

enter image description here

这也不起作用:

  if(($('#contactpersonen-email').val()) ==  $('#contactpersonen-email').val() )
                {
                        alert('the same');
                    }

我现在就这样:

<![CDATA[
                            $(document).ready(function()
                            {
                                // Form validation
                                $(".klantregistratie form").validate({
                                    rules: {
                                        verploegen_form_klantregistratie_Bedrijfsnaam: "required",
                                        verploegen_form_klantregistratie_Postcode: "required",
                                        verploegen_form_klantregistratie_Plaats: "required",
                                        verploegen_form_klantregistratie_Emailadres: {
                                            required: true,
                                            email: true
                                        },
                                        verploegen_form_klantregistratie_KvK_nummer: "required",
                                        verploegen_form_klantregistratie_naam_eigenaar: "required",
                                        verploegen_form_klantregistratie_Telefoon_mobiel: "required"
                                    },
                                    messages: {
                                        verploegen_form_klantregistratie_Bedrijfsnaam: "De bedrijfsnaam is niet ingevuld",
                                        verploegen_form_klantregistratie_Postcode: "De postcode is niet ingevuld",
                                        verploegen_form_klantregistratie_Plaats: "De plaats is niet ingevuld",
                                        verploegen_form_klantregistratie_Emailadres: {
                                            required: "Je hebt geen email adres ingevuld",
                                            email: "Je hebt geen geldig email adres ingevuld"
                                        },
                                        verploegen_form_klantregistratie_KvK_nummer: "Het KVK nummer is niet ingevuld",
                                        verploegen_form_klantregistratie_naam_eigenaar: "De naam van de eigenaar is niet ingevuld",
                                        verploegen_form_klantregistratie_Telefoon_mobiel: "Het (mobiele) telefoon nummer is niet ingevuld"
                                    }
                                });

                                // Hide the textarea
                                $('#verploegen_form_klantregistratie_Contactpersonen').parent().parent().hide();

                                // Add extra contact clicked?
                                $('#add-contact p a').click(function()
                                {
                                    // Make a copy of the first input fields
                                    html = $('#new-contact').children().clone();

                        // Get number of tabs in the accordion
                        var index = $('#accordion h3').length;

                                    // Remove the values
                                    html.find("input[type=text]").val("");
                  html.find('input[type=checkbox]').attr('checked', false);

                        // New 'id', 'for' and 'name' attribute names
                        html.find('input[type=checkbox]').each(function () {
                            me = $(this);
                            attr = me.attr('id');
                            number = attr.split('_')[2];
                            newNumber = parseInt(index) + 1;
                            newAttr = attr.replace(number, newNumber);
                            me.attr('id', newAttr).attr('name', newAttr).next().attr('for', newAttr);
                        });                  

                                    // Insert it at the end
                        $('#accordion').append(html);
                        $('#accordion').accordion('refresh');

                        // Set last tab to active
                        $("#accordion").accordion({ active: index });

                                    // Cancel the click
                                    return false;
                                });

                                // Submit clicked?
                                $('.submit-button input').click(function()
                                {
                                    // Set variables
                                    var html = '';
                                    var i = 1;

                        // Loop through all the input fields for contacts
                        $('#accordion .user-row').each(function (uindex, uvalue) {
           //Niels                      
                    var mails = $('.contactpersonen-email').map(function(){
                     return $(this).val();
    //console.log($(this).val());
                    }).get(); 

Array.prototype.areUnique = function() {
    var l = this.length;
    for(var i=0; i<l; i++) {
        for(var j=i+1; j<l; j++) {
            if (this[i] === this[j]) return false;
        }
    }
    return true;
};

if (!mails.areUnique()) {
    alert('values are not unique');
} else {
    alert('values are unique');
}

//尼尔斯

但每次说Vlaues都是独一无二的

我知道了:

    // Loop through all the input fields for contacts
                            $('#accordion .user-row').each(function (uindex, uvalue) {
                            var mails = $('.contactpersonen-email').map(function(){                 
                            return $(this).val();   
                            }).get(); 
console.log(mails);
                            ["email 1"]

klant-worden:661 [“email 1”]

3 个答案:

答案 0 :(得分:1)

尝试使用.val()代替.attr('value')

.attr('value')会在编辑前为您提供值,而.val()会为您提供当前值。

答案 1 :(得分:0)

if语句末尾的分号:

        if(($('#contactpersonen-email').attr('value')) ==  $('#contactpersonen-email').attr('value') );
                            {
                                    alert('the same');
                            }

应该是:

        if(($('#contactpersonen-email').attr('value')) ==  $('#contactpersonen-email').attr('value') )
                            {
                                    alert('the same');
                            }

在条件测试imho的同一行添加开括号是一个很好的论据。

答案 2 :(得分:0)

<强> jsFiddle demo

问题是,@Html.Password("password", "", new { id = "password", Textmode = "Password" }) html属性必须是唯一的。您应该在&#34; contact&#34;中为您的字段指定一个唯一的ID。您的表单的一部分,而不是使用类:

id

然后,您将检索<input type="email" class="contactpersonen-email" id="contactpersonen-email0" /> 字段的所有值:

.contactpersonen-email

然后您可以使用此简单函数检查所有值是否都是唯一的:

var mails = $('.contactpersonen-email').map(function(){
    return $(this).val();
}).get(); 
/* "values" now contains an array like ['mail1@website.tld', 'mail2@website.tld', 'mail2@website.tld'] */

最后,做这个简单的测试:

Array.prototype.areUnique = function() {
    var l = this.length;
    for(var i=0; i<l; i++) {
        for(var j=i+1; j<l; j++) {
            if (this[i] === this[j]) return false;
        }
    }
    return true;
};