回答:
あなたが何を達成したいのか正確にはわかりませんが、このコードは私にとってはうまくいきました。
<select id="mySelect" multiple="multiple">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
<script type="text/javascript">
$(document).ready(function() {
if (!$("#mySelect option:selected").length) {
$("#mySelect option[value='3']").attr('selected', 'selected');
}
});
</script>
$("#mySelect").val(3);
$("#mySelect option")[2]['selected'] = true;
。Firebugでオブジェクト構造を調査した結果、そのことがわかりました。
$("#mySelect").prop("selectedIndex", 2)
このためにjQueryを使用する必要はありません。
var foo = document.getElementById('yourSelect');
if (foo)
{
if (foo.selectedIndex != null)
{
foo.selectedIndex = 0;
}
}
この質問は古く、多くの意見があるので、確信のある人を助けるいくつかのものをそこに捨てます。
選択要素に選択項目があるかどうかを確認するには:
if ($('#mySelect option:selected').length > 0) { alert('has a selected item'); }
または、選択に何も選択されていないかどうかを確認するには:
if ($('#mySelect option:selected').length == 0) { alert('nothing selected'); }
または、ある種のループに入っていて、現在の要素が選択されているかどうかを確認したい場合:
$('#mySelect option').each(function() {
if ($(this).is(':selected')) { .. }
});
ループ中に要素が選択されていないかどうかを確認するには:
$('#mySelect option').each(function() {
if ($(this).not(':selected')) { .. }
});
これらはこれを行う方法のいくつかです。jQueryには同じことを実現するさまざまな方法があるため、通常、最も効率的であると思われる方法を選択するだけです。
lencioniの答えは私がお勧めするものです。オプションのセレクターを変更して、('#mySelect option:last')
" #mySelect option[value='yourDefaultValue']
" を使用して特定の値を持つオプションを選択できます。 セレクターの詳細。
クライアントで選択リストを広範囲に使用している場合は、このプラグインを確認してください:http : //www.texotela.co.uk/code/jquery/select/。選択リストを操作するいくつかの例を確認したい場合は、ソースを参照してください。
かんたん!デフォルトは最初のオプションでなければなりません。できた!JavaScriptは必要ないので、それはあなたを控えめなJavaScriptに導くでしょう:)
私はすでに言及したtexotelaプラグインに出くわしました、それは私にそれをこのように解決させました:
$(document).ready(function(){
if ( $("#context").selectedValues() == false) {
$("#context").selectOptions("71");
}
});
要素のselectedIndexを確認しselect
ます。ちなみに、これは単なるDOMであり、JQuery固有のものではありません。
君たちは選択するのにやりすぎている。値で選択するだけです:
$("#mySelect").val( 3 );
オプションが選択されているかどうかを確認し、選択されていないときにデフォルトを選択するための良い方法を見つけました。
if(!$('#some_select option[selected="selected"]').val()) {
//here code if it HAS NOT selected value
//for exaple adding the first value as "placeholder"
$('#some_select option:first-child').before('<option disabled selected>Wybierz:</option>');
}
場合#some_selectの has'tのデフォルト選択されたオプションは、その後)(.valがある未定義
$("option[value*='2']").attr('selected', 'selected');
// 2 for example, add * for every option
$("#select_box_id").children()[1].selected
これは、jqueryでオプションが選択されているかどうかを確認する別の方法です。これはブール値(TrueまたはFalse)を返します。
[1]は選択ボックスオプションのインデックスです
選択ボックスのイベントを発火するように変更し、発動すると、選択したオプションのid属性をプルするだけです:-
$("#type").change(function(){
var id = $(this).find("option:selected").attr("id");
switch (id){
case "trade_buy_max":
// do something here
break;
}
});
私はちょうど似たようなものを探していて、これを見つけました:
$('.mySelect:not(:has(option[selected])) option[value="2"]').attr('selected', true);
これにより、オプションがまだ選択されていないクラス内のすべての選択メニューが検索され、デフォルトのオプション(この場合は「2」)が選択されます。
の:selected
代わりに使用してみましたが[selected]
、何も属性がなくても常に何かが選択されているため、うまくいきませんでした