是否可以更改复选框的“已选中”属性?所以我想更改HTML中的预选值。 (这样我以后可以用JavaScript的innerHTML来获取它。)
答案 0 :(得分:5)
当然,如果您要在Javascript中使用innerHTML,您可以重新加载整个复选框位并对其进行检查。但是,更简单的方法是在Javascript中更改checked属性,无论如何要使用JS。
document.getElementById("myCheckboxId").checked = true;
修改
好的,所以你需要在将来使用innerHTML再次获得它。就像我在第一句中说的那样,你也可以使用innerHTML来改变复选框。可能有点hackish但如果你已经这样做可能会很好。
这是一个测试html页面,其中包含通过JS检查/取消选中的链接,通过使用innerHTML交换整个复选框来检查/取消选中,并获取innerHTML以进行测试。当你进行innerHTML交换时,它实际上会改变innerHTML之后返回的内容。你是这个意思吗?注意:嗯,直到现在我才意识到这一点,但似乎firefox正在将我的已检查更改为 checked =“已检查”,这很有趣。因此,视图innerHTML链接会向我显示 checked =“checked”,并且在未选中时不会显示任何内容。 Firebug也显示它的变化,但略有不同 - 从 checked =“”变为零。
<span id="testdiv1"><input type="checkbox" name="heyhey" id="heyhey" CHECKED></span>
<p>
<a href="#" onClick="document.getElementById('heyhey').checked = false;">uncheck via JS</a><br>
<a href="#" onClick="document.getElementById('heyhey').checked = true;">check via JS</a><br>
<a href="#" onClick="document.getElementById('testdiv1').innerHTML = '<input type=\'checkbox\' name=\'heyhey\' id=\'heyhey\' >';">uncheck via innerHTML swap</a><br>
<a href="#" onClick="document.getElementById('testdiv1').innerHTML = '<input type=\'checkbox\' name=\'heyhey\' id=\'heyhey\' checked>';">check via innerHTML swap</a><br>
<a href="#" onClick="alert('innerHTML!: '+'\n\n'+getElementById('testdiv1').innerHTML)">view innerHTML</a>
</p>
我不知道我是否正常逃脱了所有这些但是对我有用。最好不要内联。
答案 1 :(得分:3)
听起来你有setAttribute()
合法用途,而不是等效属性(checked
)。假设您有一个复选框存储在名为checkbox
的变量中,您可以使用以下命令设置默认情况下要检查的checked属性:
checkbox.setAttribute("checked", "checked");
...以及以下内容删除属性并默认取消选中该复选框:
checkbox.removeAttribute("checked");
请注意,这在旧的IE上无法正常工作,因为IE已经破坏了属性相关方法的实现。
我在回答上一个问题时更详细地写了这个:Add attribute 'checked' on click jquery
答案 2 :(得分:1)
是的,有可能
checkboxObject.checked=true|false