プレースホルダーを含むドロップダウンリストを作成しようとしています。他の形式のようにplaceholder="stuff"
をサポートしているようには見えません。ドロップダウンでプレースホルダーを取得する別の方法はありますか?
はい、単にオプションで「選択無効」を選択します。
<select>
<option value="" selected disabled>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
また、で答えを見ることができます
非表示を使用します。
<select>
<option hidden >Display but don't show in list</option>
<option> text 1 </option>
<option> text 2 </option>
<option> text 3 </option>
</select>
hTMLではサポートされていないため、ドロップダウンまたはselectにプレースホルダはありませんが、同じ効果を作成して他の入力のプレースホルダと同じように見せることができます。
$('select').change(function() {
if ($(this).children('option:first-child').is(':selected')) {
$(this).addClass('placeholder');
} else {
$(this).removeClass('placeholder');
}
});
.placeholder{color: grey;}
select option:first-child{color: grey; display: none;}
select option{color: #555;} // bootstrap default color
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="form-control placeholder">
<option value="">Your Placeholder Text</option>
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
リストの最初のオプションを見たい場合は、cssからdisplayプロパティを削除してください。
JavaScriptを使用して選択フィールドを初期化する場合は、デフォルトのプレースホルダーテキストを置き換えるために次のコードを追加できます。
noneSelectedText: 'Insert Placeholder text'
例:あなたが持っている場合:
<select class='picker'></select>
あなたのJavaScriptでは、あなたはこのようにselectpickerを初期化します
$('.picker').selectpicker({noneSelectedText: 'Insert Placeholder text'});
隠し属性を追加します。
<select>
<option value="" selected disabled hidden>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
これを試して:
<select class="form-control" required>
<option value="" selected hidden>Select...</option>
required
+ value=""
を使用する場合、ユーザーがhidden
を使用して選択できない場合、ユーザーがオプションボックスを開いたときにオプションリストに表示されなくなります。
このオプションはすべて即興です。ブートストラップはすでにこれに対する解決策を提供しています。すべてのドロップダウン要素のプレースホルダを変更したい場合は、の値を変更できます。
ブートストラップファイルのnoneSelectedText。
個性を変えるには、TITLEパラメータを使用できます。
例:
<div class="form-group">
<label class="control-label col-xs-2" id="country">Continent:</label>
<div class="col-xs-9">
<select name="zones[]" class="selectpicker" title="All continents" id="zones" multiple >
<option value="Africa">Africa</option>
<option value="Asia">Asia</option>
<option value="North America">America North</option>
<option value="South America">America South</option>
<option value="Antarctica">Antarctica</option>
<option value="Australia">Australia</option>
<option value="Europe">Europe</option>
</select>
</div>
</div>
ほとんどのオプションは複数選択には問題があります。 Title属性を配置し、最初のオプションをdata-hidden = "true"にします。
<select class="selectpicker" title="Some placeholder text...">
<option data-hidden="true"></option>
<option>First</option>
<option>Second</option>
</select>
bootstrap-select.js
でtitle: null,
を見つけてそれを削除します。title="YOUR TEXT"
要素に<select>
を追加してください。例:
<select title="Please Choose one item">
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
私は、ユーザーが選択する最初のオプションを無効にするクラスとJQueryコードを含むドロップダウンボックスは、Select Box placeholderのように完全に機能すると思います。
<select class="selectboxclass">
<option value="">- Please Select -</option>
<option value="IN">India</option>
<option value="US">America</option>
</select>
最初のオプションをJQueryで無効にします。
<script>
$('select.selectboxclass option:first').attr('disabled', true);
</script>
これにより、プレースホルダーとしてのドロップダウンの最初のオプションが作成され、ユーザーは最初のオプションを選択できなくなります。
それが役に立てば幸い!!
@title = "stuff"を試してください。それは私のために働きました。
ブートストラップを使用して、フィルタやその他のものに使用するオプションに値を追加する必要がある場合は、プレースホルダとして使用するオプションにクラス "bs-title-option"を追加するだけです。
<select class="form-group">
<option class="bs-title-option" value="myVal">My PlaceHolder</option>
<option>A</option>
<option>B</option>
<option>c</option>
</select>
ブートストラップはこのクラスをtitle
属性に追加します。
選択の上にラベルを作成する
<label class="hidden-label" for="IsActive"
*ngIf="filterIsActive == undefined">Placeholder text</label>
<select class="form-control form-control-sm" type="text" name="filterIsActive"
[(ngModel)]="filterIsActive" id="IsActive">
<option value="true">true</option>
<option value="false">false</option>
</select>
cSSを適用して一番上に配置します
.hidden-label {
position: absolute;
margin-top: .34rem;
margin-left: .56rem;
font-style: italic;
pointer-events: none;
}
pointer-events: none
を使用すると、ラベルをクリックしたときに選択内容を表示できます。オプションを選択した場合は非表示になります。
.html
ページの
<select>
<option value="" selected disabled>Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
.jsp
または他のサーブレットページ用。
<select>
<option value="" selected="true" disabled="true">Please select</option>
<option value="">A</option>
<option value="">B</option>
<option value="">C</option>
</select>
ブートストラップを使用して、これはあなたができることです。 "text-hide"クラスを使用すると、無効オプションが最初に表示されますがリストには表示されません。
<select class="form-control" >
<option selected disabled class="text-hide">Title</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
ブートストラップの選択にはnoneSelectedText
オプションがあります。 data-none-selected-text
属性で設定できます。 ドキュメント 。
これを行う別の方法があります
<select name="GROUPINGS[xxxxxx]" style="width: 60%;" required>
<option value="">Choose Platform</option>
<option value="iOS">iOS</option>
<option value="Android">Android</option>
<option value="Windows">Windows</option>
</select>
「プラットフォームの選択」がプレースホルダーになり、「必須」プロパティにより、ユーザーはオプションの1つを選択する必要があります。
ユーザ名やラベルを使いたくないときにとても便利です。