ドロップダウンリストに空白の項目がない空白のHTML SELECT


110

subjを実装するには?

私が書くとき:

<form>
  <select>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

デフォルトの選択項目は「aaaa」です

私が書くとき:

<form>
  <select>
     <option value=""></option>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

その場合、デフォルトで選択されたアイテムは空白ですが、この空白のアイテムはドロップダウンに表示されます。

ドロップダウンリストに非表示になっているデフォルトの空白値を使用してSELECTタグを実装するにはどうすればよいですか?


回答:


182

無効または非表示の属性を使用するだけです。

<option selected disabled hidden style='display: none' value=''></option>
  • selected このオプションをデフォルトにします。
  • disabled このオプションをクリックできなくなります。
  • style='display: none'古いブラウザではこのオプションは表示されません。参照:非表示属性のドキュメントを使用できますか?
  • hidden このオプションをドロップダウンリストに表示しないようにします。

3
実際、IE 11は「非表示」オプションを表示します。
Edward Olamisan 2013年

6
Webkitは 'hidden'属性をサポートしていないようです
Ethan Reesor

2
Can I Useで述べたように、このhidden属性は事実上なdisplay: noneので、古いブラウザをサポートするために<option selected disabled hidden style='display: none' value=''></option>
Neta

66

あなたは、設定によってできるselectedIndex-1使用して.prophttp://jsfiddle.net/R9auG/

古いjQueryバージョンの場合 .attrするのではなく.prophttp://jsfiddle.net/R9auG/71/


@IronicMuffin:ありがとう。テストしたばかりで、実際にはすべての主流ブラウザで動作するようです。
pimvdb 2012年

@zobidafly:編集ありがとうございます。少し詳しく説明しました。
pimvdb 2012

1
.attr新しいjQueryバージョンでは失敗します。賢くなろうとすると失敗しました。
Carson Ip

33

単に使用する

<option value="" selected disabled>Please select an option...</option>

スクリプトがなくてもどこでも機能し、同時にユーザーに指示することができます。


25
<select>
     <option value="" style="display:none;"></option>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>

1
ff / chrome-ok、opera / ie7-9-okではありません(jsの有無にかかわらず)ここでテストできます:jsfiddle.net/R9auG/145です ので、@ pimvdbによるjs-approachをお勧めします
tibalt

11

これは、プレーンJavaScriptを使用してそれを行う簡単な方法です。これは、pimvdbによって投稿されたjQueryスクリプトに相当するものです。ここでテストできます

<script type='text/javascript'>
  window.onload = function(){
    document.getElementById('id_here').selectedIndex = -1;
  }
</script>

<select id="id_here">
  <option>aaaa</option>
  <option>bbbb</option>
</select>

「id_here」がフォームとJavaScriptで一致していることを確認してください。


3

できません。それらは単にそのようには機能しません。ドロップダウンメニューでは、常にオプションの1つが選択されている必要があります。

(お勧めしませんが)変更イベントを監視し、JSを使用して最初のオプションが空白の場合は削除することができます。


3
この動作をお勧めしませんか?
Josh Noe

ユーザーがリストから何かを積極的に選択してほしい場合がたくさんあります。JSが最適な方法だとは思いませんが(これが唯一の方法のようですが)、方法があるはずです。
qwerty

2

純粋にhtmlの場合、@ isherwoodには優れたソリューションがあります。jQueryの場合、選択ドロップダウンにIDを指定し、jQueryで選択します。

<form>
  <select id="myDropDown">
    <option value="0">aaaa</option>
    <option value="1">bbbb</option>
  </select>
</form> 

次に、このjQueryを使用して、ページ読み込み時のドロップダウンをクリアします。

$(document).ready(function() {
    $('#myDropDown').val(''); 
});

またはそれ自体を関数の中に入れます:

$('#myDropDown').val(''); 

あなたが探しているものを達成し、ページをリロードせずにドロップダウンを空にする必要がある場合に、ページで呼び出される可能性のある関数にこれを簡単に配置できます。


0

このスニペットを試すことができます

$("#your-id")[0].selectedIndex = -1

それは私のために働いた。


1
より明確な説明を提供するために、答えに添えるjsfiddle.netを提供するのが最善です。
匿名

1
これは、OPがjQueryを使用していることを前提としています。
evanrmurphy 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.