如何检查几个输入组的重新出现?

时间:2012-02-28 13:54:32

标签: jquery input

我有一些输入元素分组在不同的div中,我需要确保同一组中的输入不具有相同的值。

示例:

<div class="group1">
    <input name="group1a" id="group1a"/>
    <input name="group1b" id="group1b"/>
    <input name="group1c" id="group1c"/>
    <input name="group1d" id="group1d"/>
<div>
<div class="group2">
    <input name="group2a" id="group2a"/>
    <input name="group2b" id="group2b"/>
    <input name="group2c" id="group2c"/>
    <input name="group2d" id="group2d"/>
<div>

所有这些输入都有一些值(用户输入),因此我想检查用户是否在 group1 的任何输入中输入相同值(与相同) group2 group3 ,...)然后系统会警告用户“你不能在该组中输入任何相同的值”

使用jQuery执行此操作的最有效方法是什么?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

$('input').blur(function(){
   var curr = this.value;
   if(curr != '' && $(this).siblings('input[value='+curr+']').length > 0){
      alert('you can\'t enter the same value twice in the same group');
      this.value = '';
   }
});

在这里摆弄http://jsfiddle.net/QRyWQ/

答案 1 :(得分:1)

$(".group1, .group 2").each(function() {
    var lastValues = {};
    $(this).find("input").each(function() {
       var thisVal = $(this).val();
       if($.inArray(thisVal , lastValues) > -1) {
           alert('You cannot enter any same value in that group');
           break;
       }
       lastValues.push(thisVal);
    });
});