2016-08-06 6 views
2

So habe ich ein dynamisches Eingabefeld kam von append mit verschiedenen Klassennamen und Namen, ich möchte überprüfen, ob jeder Eingabefeldwert bereits existiert oder dupliziert.Javascript: Wie man überprüft, ob jeder Eingangswert auf einen anderen Eingangswert dupliziert wird

aussehen Dies würde wie

Die erste criteria_name Standard ist und die anderen sind appendend.

<input type="text" name="criteria_name" class="criteria_name"> 
<input type="text" name="criteria_name2" class="criteria_name2"> 
<input type="text" name="criteria_name3" class="criteria_name3"> 
<input type="text" name="criteria_name4" class="criteria_name4"> 
<input type="text" name="criteria_name5" class="criteria_name5"> 

Ich versuche, jedes von denen zu überprüfen, wenn es keine doppelte sonst fortfahren gibt.

var critname_arr = []; 
var input_check; 
var crit_name_of_first = $('input.criteriaNames').val(); 
var acappended = append_crit_header+1; 
var count_to = 0; 

for(var ab = 2; ab<=acappended; ab++){ 
     var crit_arr; 

    if(crit_name_of_first == $('input.criteria_each_name'+ab+'').val()){ 
     alert("Criteria cannot be duplicate"); 
     return false; 
    }else{ 

     input_check = $('input.criteria_each_name'+ab); 
     input_check.each(function(){ 
      crit_arr = $.trim($(this).val());   
     }); 
     critname_arr.push(crit_arr); 
    } 
    if($('input.criteria_each_name'+ab+'').val() == critname_arr[count_to]){ 
      alert('criteria cannot be duplicate'); 
      return false; 
    } 
    count_to++; 
} 
console.log(critname_arr); 
+1

Sie würden sich wahrscheinlich helfen, eine Klasse als Selektor zu verwenden anstelle eines ID-Wert. Dann können Sie nur nach Klasse auswählen und '$ .Each' verwenden, um durch – Rasclatt

+0

zu gehen, oh ich vergaß seine Klasse srry –

+0

immer noch dasselbe ist nicht miteinander zu vergleichen, wenn es dupliziert, –

Antwort

0

Hier ist nur ein Beispiel dafür, wie Sie es tun können. In der Geige ändern Sie einen der Werte in einen anderen, der bereits in einem anderen Feld ist (machen Sie einen doppelten Wert), um etwas zu sehen. Wenn es keine Duplikate gibt, wird es nichts tun. Klicken Sie auf den „Button“ Text der Dublettenprüfung auszuführen:

jsFiddle:https://jsfiddle.net/o52gjj0u/

<script> 
$(document).ready(function(){ 
    $('.ter').click(function(e) { 
     var stored = []; 
     var inputs = $('.criteria_name'); 
     $.each(inputs,function(k,v){ 
      var getVal = $(v).val(); 
      if(stored.indexOf(getVal) != -1) 
       $(v).fadeOut(); 
      else 
       stored.push($(v).val()); 
     }); 
    }); 
}); 
</script> 
<!-- Just use an array name for the input name and same class name as well --> 
<div class="ter">Button</div> 
<input type="text" name="criteria_name[]" class="criteria_name" value="1" /> 
<input type="text" name="criteria_name[]" class="criteria_name" value="2" /> 
<input type="text" name="criteria_name[]" class="criteria_name" value="3" /> 
<input type="text" name="criteria_name[]" class="criteria_name" value="4" /> 
<input type="text" name="criteria_name[]" class="criteria_name" value="5" /> 
+0

interessant ich versuche dies –

Verwandte Themen