【问题标题】:jQuery - disable select option based on option keyword not by valuejQuery - 基于选项关键字而不是值禁用选择选项
【发布时间】:2012-11-29 12:56:42
【问题描述】:

我有这个 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");
  }
});​

非常感谢任何帮助。

【问题讨论】:

  • 您在第一行的双引号中包含双引号,这可能是您的问题吗?

标签: jquery html select disabled-input


【解决方案1】:

为什么不这样做:

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

jsFiddle example

【讨论】:

  • 完美,有效。太感谢了。我无法停止对有些人编写代码的速度有多快感到惊讶,我不得不花费数小时,无法弄清楚然后寻求帮助。
【解决方案2】:

您可以使用contains 选择器

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

http://jsfiddle.net/CALe7/

【讨论】:

  • 是的 :) 甚至不需要循环
猜你喜欢
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 2011-11-19
  • 2015-09-21
  • 1970-01-01
  • 2011-06-17
相关资源
最近更新 更多