2012-02-22 45 views
0

複数の行を持つテーブルがあります。各行にはドロップダウンリストがあります。ユーザーは、各行のドロップダウンリストから2つの同じオプションを選択することはできません。つまり、行1のドロップダウンリストからオプションAを選択すると、行2または3のドロップダウンリストまたは他の行からオプションAを選択できません。ドロップダウンリストで重複しない選択値を設定する方法

私は単純に、リスト内の最初の項目を選択したが、もちろん、これは動作しません。

function isSelectedOptionValid(selectedOption) { 

    var isValid = true; 
    var rows = $(selectedOption).parent().parent().siblings(".TBLCONTENTS"); 
    var tds = rows.find("td"); 

    for(i=0;i<rows.length;i++) { 

     var option = $($($(rows[i]).find("td")[1]).find("select")[0]).val(); 

     if (option == $(selectedOption).val()) { 

      // find the option that is not selected 
      $(selectedOption).children(":first").attr("selected", "selected"); 

      isValid = false; 
      break; 
     } 
    } 

    return isValid; 

} 
+1

オプションを削除したいですか?ユーザーがオプションを選択するのをやめようとしていますか? – ManseUK

+1

ユーザが1つの項目を選択すると、それを配列で押して、ユーザが別の項目を選択したときに配列に存在するかどうかをチェックします。存在する場合は、その項目が他のリストで選択されたことを意味します。 ドロップダウンリストの番号に従ってインデックスを設定できます。各リストから1つの要素だけを配列にプッシュできます。 – SachinGutte

+0

ユーザーが選択していないオプションを選択したいだけです。 – azamsharp

答えて

0

はthis-

<select class="list"> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
</select> 
<select class="list"> 
<option>1</option> 
<option>2</option> 
<option>3</option> 
</select> 
ため、このワン

$(function() { 
    var a=new Array(); 
    $(".list").each(function(){ 
    $(this).change(function(){ 
     if(a[$(this).index]!=$(this).val()){ 
      a[$(this).index]=$(this).val(); 
     }else{ 
      alert('Already There');    
     } 
    }); 
}); 
}); 

とHTMLを試してみてください

Demo

関連する問題