3

I have a html table and there is input in it. I want to check duplicate value in a custom column or In the other hand Non Dupllicated td value.

<table>
    <tr><td><input value="one"/></td></tr>
    <tr><td><input value="two"/></td></tr>
    <tr><td><input value="one"/></td></tr>
    <tr><td><input value="nine"/></td></tr>
    <tr><td><input value="four"/></td></tr>
</table>

I want check all input in td and if a value duplicated display error. For example in top code one is duplicated. I don't want to use for().

Mohammad
  • 20,339
  • 15
  • 51
  • 79
Mohsen Zahedi
  • 621
  • 2
  • 10
  • 26
  • http://stackoverflow.com/questions/37749385/jquery-validation-for-duplicates-in-form-array – Midas Jun 12 '16 at 12:21

3 Answers3

16

Using each() check value of inputs and if any value is duplicate add class duplicate to it.

var arr = [];
$("input").each(function(){
    var value = $(this).val();
    if (arr.indexOf(value) == -1)
        arr.push(value);
    else
        $(this).addClass("duplicate");
});
.duplicate {
    border: 1px solid red;
    color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr><td><input value="one"></td></tr>
    <tr><td><input value="two"></td></tr>
    <tr><td><input value="one"></td></tr>
    <tr><td><input value="nine"></td></tr>
    <tr><td><input value="four"></td></tr>
    <tr><td><input value="four"></td></tr>
</table>
Mohammad
  • 20,339
  • 15
  • 51
  • 79
4

Try this one

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
        <tr><td><input value="one"></td></tr>
        <tr><td><input value="two"></td></tr>
        <tr><td><input value="one"></td></tr>
        <tr><td><input value="nine"></td></tr>
        <tr><td><input value="four"></td></tr>
    </table>

<script>
$("input").change(function(){
    var x=$(this).val();
    var z=0;
    $("input").each(function(){
        var y=$(this).val();
        if(x==y){
            z=z+1;
        }
    });
    if(z>1){
        alert(x);
    }
 })
 </script>

 </body>
</html>
0

Please check using this code

$("input").on("change",function(){
   var arr = new Array();
   $("input").each(function(){
                        arr.push($(this).val());
   });
   for(var i=0; i<arr.length;i++){
       for(var j=i+1;j<arr.length;j++){
          if(arr[i]==arr[j]){
              alert("Already Exist"); 
              return;
          }
       }
   }         
})
Avid Programmer
  • 1,667
  • 18
  • 28