2012-05-07 14 views
1

私は、次のしている:jQueryを使用して選択リストから選択項目を削除するにはどうすればよいですか?

<select name="CityID" id="CityID"> 
    <option value="99">Select City</option> 
    <option value="01H">AAA</option> 
    <option value="01I">BBB</option> 
</select> 

とすぐに選択のクリックが、私はオプションvalue="99"との最初の行を削除したいオプションを選択することとして。

jQueryでこれを行うことはできますか?私は.changed()イベントでそれを行うことができると思うが、.changed()の前に選択をクリックしたユーザーを拾う他のイベントはありますか?

答えて

4
$('select[name="CityID"]').focus(function() { 
    $('option[value="99"]:first', this).remove(); 
}); 
+0

Typoでは、選択名(およびID)はCityIdではなくCityIDです。 – j08691

+0

この回答の潜在的な問題は、ページに他のオプション要素がないことを前提にしています(値= 99、プルされた最初の要素です)。 2値= 99の選択ボックスが複数ある場合は、問題がある可能性があります。 – jmort253

+0

これは真実ではありません... $( 'option [value = "99"]:first "、this)、"、this "にはフォーカスされたselect要素のオプションが含まれています – Bryan

1

ブライアンの答えが正しい。しかし、ここではすべてのブラウザと互換性がない可能性があり、代替です:

<select name="CityID" id="CityID" required> 
    <option value="" disabled selected >Select City</option> 
    <option value="01H">AAA</option> 
    <option value="01I">BBB</option> 
</select> 

http://jsfiddle.net/ApeHg/2/

requiredはselect要素にHTML5ですが、彼らはフォームを送信する前に、その要素を選択するようにユーザーを強制的に

最初の要素のdisabled selectedプロパティは、探している動作(選択不可能なデフォルト)をシミュレートしようとします。

関連する問題