2011-06-20 32 views
3

Prototypeを使用してドロップダウンリストから選択した値を選択解除する方法を教えてください。事前に任意の助けPrototype - ドロップダウンから選択した値を選択解除する方法

から

<select id=“mylist” MULTIPLE > 
<option value=“val-1”>Value 1</option> 
<option value=“val-2” SELECTED>Value 2</option> 
<option value=“val-3”>Value 3</option> 
</select> 

<select id=“mylist” MULTIPLE > <option value=“val-1”>Value 1</option> <option value=“val-2”>Value 2</option> <option value=“val-3”>Value 3</option> </select> 

に感謝します。

+0

デフォルト(通常は空、時には「を選択してください」または類似の)ほとんど常にある理由があります - 何かがする必要があります選択された。 –

+0

あなたの質問は 'selected' DOMプロパティを変更することを説明していますが、あなたのコード例は' selected' HTMLブール値属性への変更を要求しています。なぜ矛盾? –

+0

私が持っているものは2回のドロップダウンです。ユーザーが1つから選択すると、他のユーザーから選択を解除する必要があります。 – woot586

答えて

1

私は、次のコードがうまく働いたが見つかりました:

var options = $$('select#mylist option'); 
var len = options.length; 
for (var i = 0; i < len; i++) { 
    options[i].selected = false; 
} 
+1

それはまさに私のフィドルにあったものです。 – kzh

2

あなたがすることはできません:あなたは空のオプションを追加する必要があります

<option></option> 

と、選択された第二のリストのイベントで、その後

$$("#mylist option[selected]")[0].selected = false; 
$$("#mylist option")[0].selected = true; 
2

...

Event.observe('secondlist', 'change', function(){ 
    if (this.selectedIndex >= 0) 
    $$('#mylist option[selected]').invoke('writeAttribute', 'selected', false); 
}); 
11

私はプロトタイプでそれを行う方法がわかりませんが、私はJavaScriptでそれを行うことができます。

通常選択の場合は、yourSelectElement.selectedIndex = -1と設定します。複数選択の場合

、あなただけ CTRL + 選択した項目をクリックていますが、プログラム的にもそれを行うことができます。リンクを参照してください。

http://jsfiddle.net/kaleb/WxJ9R/

+0

+1を言及するのを忘れていたマルチセレクトリストです。それは私には分かりませんでした。 – clockworkgeek

+0

jQueryはこれもやっていません - 私が行った限られた見た目では少なくとも。 prop( "selected"、null) 'ハイライトをオフにしますが、選択されたプロパティを選択されたプロパティから実際には削除しません。 1。私の検証では、mySelectに選択肢があり、何も選択されていないのに、送信が許可されていると考えられます。 – gordon

関連する問題