[jQuery]selectを操作できなくしたり未選択にしたりする方法

わからなかった

操作の可否設定

「disabled」をつけたり外したりするのをどうやるのってこと。

複数脳方法がある。

//操作不可
$('select').prop("disabled", true);
$('select').attr("disabled", true);
//操作可
$('select').prop("disabled", false);
$('select').attr("disabled", false);
$('select').removeAttr("disabled");

調べたらたまに出てくるこの書き方は、現行のjQueryじゃ動かないっぽい。

//操作不可
$('select').attr("disabled", "disabled");
//操作可
$('select').attr("disabled", "");

disabledは<select>だけのものじゃないので、<button>とかにも使える。

選択を解除する(空欄にする)

こうすると空っぽになる。

$('select').val([]);

ただ注意しなきゃいけないのは、本当に空っぽになるので、「<option value=””>選択してください</option>」を初期表示にしてたら食い合わせが悪い。

初期状態に戻すならこっち。

$('select option').prop('selected', false);

多分こちらのほうがニーズがある。

.attr()が効かない場合

.attr()が動作しないんだけど、ってときは.prop()に置き換えたら動いたケースが多い。

とりあえず動作確認したければ書き換え、似てるけど明確に役割は違うんでちゃんと学んだほうが良い。

[jQuery] attr()とprop()の使い方と違い
attr()、prop()は、HTML要素のプロパティや属性値を取得したり、設定したりするjQueryのメソッドである。どちらも似たようなメソッドだが、それぞれの使い方と違いをまと...

コメント

タイトルとURLをコピーしました