【问题标题】:Unable to enable/disable checkbox via [selector].attr & .removeattr无法通过 [selector].attr & .removeattr 启用/禁用复选框
【发布时间】:2014-01-30 03:34:59
【问题描述】:

小提琴:

http://jsfiddle.net/KU29Q/1/

目标是能够动态启用和禁用复选框。我尝试通过引用相关复选框的类和/或 id,然后使用 .attr("disabled", "disabled") 或 .removeAttr("disabled")

<input id="check" type="checkbox" disabled="disabled" class="enableDisable"><label for="check2" >Initially Disabled</label>
<input id="check2" type="checkbox"  class="enableDisable"><label for="check2" >Initially Enabled</label>

//attempt to ENABLE checkbox1
$("check").removeAttr('disabled');

//attempt to change state of second checkbox - DISABLE it...
$(".enableDisable").attr("disabled","disabled");
$("#check2").attr("disabled", "disabled");

也尝试过使用 [selector].prop 无济于事。有人可以朝正确的方向推我和/或打我的脸以减轻我的躁动吗?

谢谢。

【问题讨论】:

  • 1. 你需要在你的小提琴中包含 jQuery。 2. 您的类适用于这两个元素,因此您在中间行禁用了它们,只需使用唯一 ID:jsfiddle.net/KU29Q/2
  • 谢谢@scrowler。你搞定了。如果您愿意,请回答,以便我将其标记为正确。

标签: javascript jquery checkbox


【解决方案1】:

JSFIDDLE DEMO

  1. 使用.prop() 而不是.attr()
  2. 对于定位 ID,请使用 #(哈希)
  3. 类使用.(点)

//attempt to ENABLE checkbox1

$("#check").prop('disabled', false);

//attempt to change state of second checkbox - DISABLE it...

$("#check2").prop("disabled",true);

【讨论】:

    【解决方案2】:

    1.你需要在你的小提琴中包含 jQuery

    2.您的类适用于这两个元素,因此当您将其用作禁用选择器时,您会禁用这两个元素:

    $(".enableDisable").attr("disabled","disabled");
    

    您应该只使用(唯一)ID 并删除类选择器行:

    $("#check").removeAttr('disabled');
    $('#check2').attr('disabled', 'disabled');
    

    你更新的小提琴:http://jsfiddle.net/KU29Q/2/

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多