Ingressi multipli con controllo di valore duplicato

Ho un button per creare tag di input. Quando l'utente fa clic su button Invia voglio trovare gli input con valori duplicati e cambiare il bordo in rosso.

Non sto utilizzando il plugin jquery validationre

codice html:

<form> <table> <tr> <td><input type="text" name="text[]" id="1"> <button class="add">add</button></td> </tr> </table> <input type="submit" id="submit" value="check"> </form> 

Codice jQuery:

 // add input var i = 2; $('.add').click(function(e){ e.preventDefault(); $('table').append("<tr><td><input type="text" name="text[]" id="'+i+'"> <button class="add"></td></tr>"); i++; }); $('#submit').click(function(){ // I do not know how to write ... }); 

Ecco quello che vuoi

  $('#submit').click(function () { var valid = true; $.each($('input[type="text"]'), function (index1, item1) { $.each($('input[type="text"]').not(this), function (index2, item2) { if ($(item1).val() == $(item2).val()) { $(item1).css("border-color", "red"); valid = false; } }); }); return valid; }); 

Se qualcuno è dopo questo, con molti input e si occupa dell'efficienza, questo produce lo stesso risultato (duplicati oltre la prima occorrenza sono contrassegnati):

 $('#submit').click(function(){ var values = []; //list of different values $('table input:text').each( function() { if (values.indexOf(this.value) >= 0) { //if this value is already in the list, marks $(this).css("border-color", "red"); } else { $(this).css("border-color", ""); //clears since last check values.push(this.value); //insert new value in the list } } ); }); 

violino:

https://jsfiddle.net/4s82L4vg/