2

私はこのHTML選択コードを持っています:

​<select name="loc_code">
  <option value="">Select</option>
  <option value="loc1">Loc1 status ON</option>
  <option value="loc2">Loc2 status ON</option>
  <option value="loc3">Loc3 status OFF</option>
  <option value="loc4">Loc4 status ON</option>
</select>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

そのため、値ではなくテキスト名に基づいてオプションのドロップダウンを無効にするのに問題があります。ステータスOFFを含むオプションのみを無効にする必要があります。

StackOverflowに投稿された他の同様の質問からこのjQueryコードを変更しようとしましたが、明らかに間違っています:

$("select[name="loc_code"] option:selected").text(function() {
  var $thisOption = $(this);
  var valueToCompare = "OFF";

  if($thisOption.val() == valueToCompare) {
    $thisOption.attr("disabled", "disabled");
  }
});​

どんな助けでも大歓迎です。

4

2 に答える 2

6

してみませんか:

$('select[name=loc_code] option').each(function() {
    if ($(this).text().indexOf('OFF') >= 0) $(this).attr('disabled', 'disabled');
});​

jsFiddleの例

于 2012-12-11T22:09:16.287 に答える
4

包含セレクターを使用できます

$('select[name="loc_code"] option:contains(OFF)').prop('disabled',true);​

http://jsfiddle.net/CALe7/

于 2012-12-11T22:13:59.397 に答える