2014-10-05 2 views
1

Я хочу использовать jQuery, чтобы не разрешать отправку формы, если два элемента формы с одним и тем же классом имеют одинаковое значение. Однако я не могу заставить его работать. Вот что я пытался:Как проверить, являются ли значения классов одинаковыми

$(document).ready(function(){ 
    $("#myform").submit(function(){ 
     var tempvar; 
     var count; 
     var start = 0; 
     var legit = true; 
     $(".inputclass").each(function(index){ 
      count = 0; 
      tempvar = this.val(); 
      $(".inputclass").each(function(index){ 
       if (tempvar == $(this).val()){ 
        count++; 
       } 
      }); 

      if (count > 1){ 
       legit=false; 
      } 
     }); 
     return legit;  
    });  
});  

Форма будет представлять независимо от того, два из значений одинаковы, и я не могу понять, почему.

ответ

2

Я думаю, что проблема ниже:

tempvar = this.val(); 

Заменить это с

tempvar = $(this).val(); 

Надеется, что это поможет !!

0

Вы не можете просто сравнить новое значение ввода с последним, если имеется более двух входов, но можете легко записать значения класса в массив и для каждого значения проверить, существует ли он в массиве и действовать соответственно:

пример кода:

var list = new Array(); 

$(".inputclass").each(function(index){ 
    var inputValue = $(this).val(); 
    if(inArray(inputValue, list)!= -1) 
     list.push(inputValue); 
    else 
     alert("Value "+inputValue+" already exists!"); 
}); 
+0

почему бы вам не использовать скобки для другого, если-? просто любопытно .. Это потому, что вы считаете его более читаемым или потому, что вам нужно набрать меньше или потому что это меньше кода? – myfunkyside

+0

@myfunkyside, хорошо, что это нормально для условий с одной инструкцией внутри! но вы можете ВСЕГДА использовать скобки для условий! ;) – goseo

+0

Вот почему я спрашиваю, это не могло быть по привычке, поскольку, если у вас есть несколько строк кода, вам все равно нужны эти скобки. Так почему вы это делаете? (И многие другие люди, но вы действительно можете отвечать только за себя) – myfunkyside

Смежные вопросы