jQuery:如何比较多个输入

发布于 2024-12-23 18:46:08 字数 312 浏览 1 评论 0原文

如果同一表单中的多个输入都具有相同的值,如何比较它们?我需要检查它们是否都具有相同的值。

<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"/>
....

How can you compare multiple input in the same form if they ALL have the same value? I need to check if they all have the same value or not.

<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"/>
....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

超可爱的懒熊 2024-12-30 18:46:08

试试这个:

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;

基本上使用一个真正返回唯一数组的函数。

Try this:

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

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

Here is the jsfiddle.net
http://jsfiddle.net/epignosisx/jzWUA/4/

UPDATE======

As @Anurag pointed out, $.unique is only for DOM elements. Here is a different implementation:

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;

Basically uses a function that will truly return a unique array.

失而复得 2024-12-30 18:46:08

这应该可以解决问题 http://jsfiddle.net/EpYTh/

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

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


alert(equalField);

This should do the trick http://jsfiddle.net/EpYTh/

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

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


alert(equalField);
原野 2024-12-30 18:46:08
function hasSameValue() {
  var sameValue = true, formVal = $('.inputclass').first().val();
  $('.inputclass').each(function(){
    sameValue = sameValue && (formVal === $(this).val());
    if (!sameValue) { return false; }
  });
  return sameValue;
}
function hasSameValue() {
  var sameValue = true, formVal = $('.inputclass').first().val();
  $('.inputclass').each(function(){
    sameValue = sameValue && (formVal === $(this).val());
    if (!sameValue) { return false; }
  });
  return sameValue;
}
逆光飞翔i 2024-12-30 18:46:08
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/

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/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文