31098

[code]

    <select id="hoge" class="hoge-select" >
        <option selected="selected" value="1">text1</option>
        <option value="2">text2</option>
        <option value="3">text3</option>
        <option value="4">text4</option>
        <option value="5">text5</option>
    </select>
    
[/code]

jqueryのラジオボタンで任意のオプションチェックしたいです。  
例えばvalue="2"にチェックしたい場合はどのように書けばいいですか？


CC BY-SA 3.0
2016-12-09T06:36:14.050
31043
2016-12-12T10:20:31.650
2016-12-09T06:45:03.883
5044
15167
question
javascript jquery
jqueryのラジオボタンで任意のオプションチェックしたいです。


`$("#hoge option:selected").removeAttr("selected");`  
`$("#hoge option[value=2]").attr("selected", "selected");`

でいかがでしょうか。


CC BY-SA 3.0
2016-12-09T07:22:16.443
31045
2016-12-09T07:22:16.443
19822
31043
answer


HTMLの `selected` 属性をちゃんと付け外ししたい場合は `attr()` `removeAttr()` を使わないといけませんが、通常は
`prop()` か `val()` を使えばいいかと。

  * `<option>` の `selected` プロパティを true にする
[code]     // 択一のselectやradioでは、どれかtrueにした時点で他はfalseになるので↓は不要

    // $("#hoge option:selected").prop("selected", false);
    $("#hoge option[value=2]").prop("selected", true);
    
[/code]

用途：value以外の方法で要素を指定したい時（n番目とか既存のjQueryオブジェクトとか）。複数選択可能な場合は個別に切り替えたい時に使います。

  * `<select>` の `value` プロパティを変更する
[code]     // .prop() でもいいが、専用の .val() が使える

    // ここで指定する値は `<option>` の `value` 属性に指定した文字列
    $("#hoge").val("3");
    
[/code]

用途：選択したい要素のvalueを知っている時。`$("option[value=" + val + "]")`
なんて文字列操作をせずに済みます。また複数選択可能な場合は、値を配列で渡すことで一括選択に使います。

なお `<input type="radio">` は `<select>`
のようにまとめる要素がないので、前者は同じように動作しますが後者は少し変わってきます。この手の要素の選択値の取得・設定については次のページなどがよくまとまっているかと思います。参考までに。

[jQueryにおけるフォーム値の取得と設定 :
JavaScript好き](http://jszuki.doorblog.jp/archives/31702159.html)


CC BY-SA 3.0
2016-12-12T10:20:31.650
31098
2016-12-12T10:20:31.650
8000
31043
answer