2011-12-31 5 views
0

jqueryでドロップダウンリストを複製しようとしています。基本的には、ユーザーがボタンをクリックするとこれが実行され、前のドロップダウンボックスで選択した値が削除されます。私はmySQLから自分の値を取得しています。そして、それらをドロップダウンリストに出力します。私がこれを実行するとき、私が得ている唯一のものは、私が持っている最初の選択肢です。私の2番目のドロップダウンリストでは、 "Select an Interest"です。なぜこれが動作していないのか誰でも見ることができますか?第1ドロップダウンで選択した値を削除している間に重複ドロップダウン

また、これらは、配列としてフォームに提出されるため、名前に角括弧が付きます。私はこれが原因であるかどうかはわかりませんが、それについてのanyonesのフィードバックは歓迎です。

Interests<br /> 
<select name="selectedint[]" id="selectint"> 
<option selected value="">Select an Interest</option> 
<? 
for ($i=0; $i<$setintcount; $i++) 
{ 
     if($setinterests[$i] == $interests[$i]) 
     { 
      echo "<option selected value='$setinterests[$i]'>$setinterests[$i]</option>"; 
     } 
     else 
     { 
      echo "<option value='$setinterests[$i]'>$setinterests[$i]</option>"; 
     } 
} 
?> 
</select> 

<select name="selectedint2[]" id="select"> 
<option selected value="">Select an Interest</option> 
<script> 
$('#selectint option').each(function() 
{ 

    $(document).ready(function() { 
     if("#selectedint".val() != this) 
     { 
     document.write(this); 
     } 
    } 
}); 
</script> 
</select> 

答えて

1

ドロップダウンリストをコピーして、あなたがremoveAttrで、cloneメソッドを使用することができます選択をクリアします。

var newDD = $("#yourDD").clone(); 
$("option", newDD).removeAttr("selected"); 

各(関数()。私は一目見ただけで気付いてる事はあなたが.ready $( '#のselectintオプション')内の$(文書)を持っているということです。このfiddle

0

をチェック 文書準備が$( '#selectintオプション')の外にある必要があります。各部分(function())は、文書が読み込まれたときに処理される部分です。

2、あなたのif( "#selectedint" .val()!= this)は無効です 3、選択した値を適切に比較しています。 $(this).val()を使いたいでしょう。

あなたの新しいコードは次のようになります。私が気づい

$(document).ready(function(){ 
    var $selected = $('#selectedint').val(); 

    $('#selectedint option').each(function() 
    { 
     if($selected != $(this).val()) 
     { 
      document.write(this); 
     } 
    }); 
}); 

もうひとつは、ユーザーがトップドロップダウンメニューでオプションを選択した後でも、何も下のドロップダウンに起こるだろうされていないということですメニュー。 あなたは番目のドロップダウンメニューではなく、$(ドキュメント).readyの選択された値を、持っているときのオプションを埋めるだけに下のドロップダウンメニューを使用する場合は、

$('#selectedint').change(function(){ 

ような何かを行うので、それがデータでいっぱいになりますselectedintドロップダウンメニューで値が変更されます。

1

私はあなたが使用するには、このヘルプがちょうどドロップダウンリスト

<script type="text/javascript"> 


function check_selection(elt){ 
    var index = elt.selectedIndex;  
    if (index == 0) {return true;} // always legal 
    var elems = elt.form.elements; 
    for (var i=0;i<elems.length;i++) { 
    if (elems[i] == elt) {continue;} // don't test self 
    if (index == elems[i].selectedIndex) { // same selectedIndex 
    alert("Seleccion duplicada por favor elija otro valor."); 
    elt.selectedIndex = 0; 
    elt.focus(0); 
    return false; 
    } 
    } 
    return true; 
    } 
</script> 
onchange="check_selection(this)"を追加願っています:)あなたはjqueryのにこのロジックを追加することができます
関連する問題