更改HTML复选框选中的属性

时间:2011-10-27 20:38:55

标签: javascript html checkbox

是否可以更改复选框的“已选中”属性?所以我想更改HTML中的预选值。 (这样我以后可以用JavaScript的innerHTML来获取它。)

3 个答案:

答案 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 =“”变为零。

Here is jsfiddle

<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