2012-02-28 7 views
1

私はいくつかの入力要素を異なる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> 

すべてのこれらの入力は、いくつかの値を持っている(ユーザーが入力した)ので、私は、ユーザーがグループ2と同じグループ1(のいずれかの入力に同じ値を入力するかどうかを確認したいgroup3、...)システムは、 "そのグループに同じ値を入力することはできません"という警告をユーザーに表示します。

これを行う最も効率的な方法は何ですか? jQuery?

答えて

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
$(".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); 
    }); 
}); 
関連する問題