JQuery: как сравнить несколько входов - PullRequest
0 голосов
/ 30 декабря 2011

Как вы можете сравнить несколько входов в одной форме, если они ВСЕ имеют одинаковое значение?Мне нужно проверить, имеют ли они все одинаковое значение или нет.

<input type="text" class="inputclass"/>
<input type="text" class="inputclass"/>
<input type="text" class="inputclass"/>
<input type="text" class="inputclass"/>
<input type="text" class="inputclass"/>
....

Ответы [ 4 ]

5 голосов
/ 30 декабря 2011

Попробуйте это:

var arr = $("input.inputclass").map(function(){
    return $(this).val();
}).toArray();

var allHaveSameValue = $.unique(arr).length == 1;

Вот jsfiddle.net http://jsfiddle.net/epignosisx/jzWUA/4/

ОБНОВЛЕНИЕ ======

Как указал @Anurag, $.unique только для элементов DOM.Вот другая реализация:

function uniqueArray(arr){
    return $.grep(arr,function(v,k){
        return $.inArray(v,arr) === k;
    });
}

var arr = $(".inputclass").map(function(){
    return $(this).val();
}).toArray();
var allHaveSameValue = uniqueArray(arr).length == 1;

В основном использует функцию, которая действительно возвращает уникальный массив.

1 голос
/ 30 декабря 2011

Это должно сработать http://jsfiddle.net/EpYTh/

var firstInput = $(".inputclass").eq(0).val();
 var equalField = true;
$(".inputclass").each(function(){

    if($(this).val() != firstInput){
        equalField = false;
    }   
});


alert(equalField);
0 голосов
/ 30 декабря 2011
var allHaveSameValue = $(".inputclass").toArray().every( function( input, index, inputs ){
return input.value === inputs[0].value;
});

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every

http://jsfiddle.net/zTSag/1/

0 голосов
/ 30 декабря 2011
function hasSameValue() {
  var sameValue = true, formVal = $('.inputclass').first().val();
  $('.inputclass').each(function(){
    sameValue = sameValue && (formVal === $(this).val());
    if (!sameValue) { return false; }
  });
  return sameValue;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...