【问题标题】:setAttribute("checked", "checked") only works one timesetAttribute("checked", "checked") 只工作一次
【发布时间】:2015-03-10 10:54:56
【问题描述】:

我面临一个问题

HTML

<input id="cb" type="checkbox" name="Employment_Staus" value="E" />
<input type="button" value="Check" id="id" />

JQUERY

$('#id').click(function(){
    $('input[type="checkbox"]')[0].setAttribute("checked", "checked");
});

当我第一次点击check button时,它起作用了!(它选中复选框),然后我手动取消选中复选框!

当我手动取消勾选后再次按check button时,它不起作用!

我不想使用 attr 或 prop 等!

示例

http://jsfiddle.net/wL6qr0hp/4/

【问题讨论】:

  • $('input[type="checkbox"]')[0].checked = true$('input[type="checkbox"]').prop("checked", true);
  • 你为什么使用 jQuery,然后试图避开它的一半功能?
  • @ShahidGhafoor — 这是因为 Firebug 显示了该属性。正如我在回答中所说,属性和属性代表不同的东西。
  • 那么你必须同时设置属性和属性,并且你必须在状态改变时更新属性。

标签: javascript jquery html


【解决方案1】:

checked 属性设置默认状态,而不是当前状态。

改为修改checked 属性(使用.checked = true)。

【讨论】:

  • 我不想使用 attr 或 prop 等!!
  • @ShahidGhafoor - 为什么不呢?
  • @ShahidGhafoor Quentin 回答中的代码没有。我想不出一个很好的理由来包含 jQuery,但不利用它的特性。
  • @j08691 This is the reason ,他们没有设置checked=true属性!!但是 setAttribute 这样做!
  • 勾选复选框时我想要!这个声明&lt;input id="cb" type="checkbox" name="Employment_Staus" value="E" /&gt;应该变成这个&lt;input id="cb" type="checkbox" name="Employment_Staus" value="E" checked=true /&gt;
猜你喜欢
  • 2013-02-22
  • 2017-09-20
  • 2014-05-06
  • 1970-01-01
  • 2015-08-14
  • 2013-08-10
  • 2019-04-27
  • 1970-01-01
  • 2016-10-30
相关资源
最近更新 更多