【问题标题】:HTML says radio button is checked, but javascript says it's notHTML 表示已选中单选按钮,但 javascript 表示未选中
【发布时间】:2011-06-20 23:55:38
【问题描述】:

根据 Chrome,这是我的按钮的 html:

<input checked="" type="radio" class="edit bindable" id="communicationAddresses[0].defaultAddress" name="EMAIL.default">

当我在我的 javascript 控制台中运行它时,输出输出为“false”

$("input[type=radio]:first").attr("checked")

实际的 UI 元素明显没有被选中。当我运行此代码时,按钮变得明显被选中:

$("input[type=radio]:first").attr("checked", true)

回顾 Chrome 中的 html,我看到的内容几乎与我之前看到的完全一样。唯一的区别是“checked”现在在标签的末尾而不是开头?

<input type="radio" class="edit bindable" id="communicationAddresses[0].defaultAddress" name="EMAIL.default" checked="">

更多信息:页面下方还有另一个广播组。当我删除第二个无线电组时,第一个按预期工作。他们是不同的群体。 可以从每个按钮中手动选择。

这里发生了什么?为什么按钮一开始没有明显选择?

##### 编辑

按钮被选择开始,但由于我正在运行的某些事件绑定代码中的错误而最终被取消选择。

【问题讨论】:

  • html的结构是什么?另外,checked 是一个布尔属性;它不需要一个值,它只需要在那里:所以&lt;input type="radio" checked /&gt; 不是&lt;input type="radio" checked="" /&gt;
  • 如果你希望它被检查使用checked="checked"或者根本不使用checked属性
  • @David Thomas 我在我的 html 中使用 。但是,当我查看源代码时,浏览器显示我已选中 =“”。我宁愿不转储我所有的 html 并要求大家把它倒过来以防错误。
  • 好的。弄清楚为什么它没有按检查加载。不得不与我在其上运行的一些花哨/愚蠢的绑定代码有关,这是错误的。感谢您的帮助。

标签: html forms radio-button


【解决方案1】:

checked 属性对应于复选框的默认选中状态,而不是它的当前选中状态。

换句话说,checked 属性对应于defaultChecked javascript property,而不是checked property

jQuery 的$("foo").attr("checked", true) 设置checked javascript 属性,但不影响checked 属性。

【讨论】:

  • 谢谢艾米特。所以,这回答了问题的主要部分。任何猜测为什么它没有显示为检查开始?
  • @morgancodes 我可能误解了您的情况...根据您的第一个代码 sn-p,它以 checked="" 开头,那么您为什么希望它以检查开头?
  • 让我们忘记第二部分。我想通了。你回答了第一部分。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-06-10
  • 2020-11-05
  • 2015-04-26
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多