在dashcode中以编程方式更改复选框的状态

时间:2010-03-21 21:33:56

标签: javascript checkbox dashcode

好的,所以我试图在程序代码中以编程方式更改复选框的状态。我试过了:

var checkbox = document.getElementById("checkbox");

// I have tried all the following methods.
checkbox.checked = false;
checkbox.selected = false;
checkbox.value = false;

8 个答案:

答案 0 :(得分:14)

Dashboard Widgets只运行在WebKit技术上,因此对Safari有效的代码也应该在Dashcode中有效。以下任何一种都应该有效:

checkbox.checked = true;
checkbox.setAttribute("checked", "true");

它们不工作这一事实表明您的代码中存在其他问题。我会检查一下

var checkbox = document.getElementById("checkbox");     

正确地为checkbox变量指定一个元素。另外,检查“复选框”元素的ID是否有效且正确(不重复,没有拼写错误等)。

答案 1 :(得分:6)

我写这个答案时,这个问题已经有一个月了。它可能已经解决了,但无论如何我想补充一点,如果你使用Dashcode,Checkbox部分是一个包含一个标签和一个输入的div,这个是“真正的”复选框。

如果您检查在Safari中加载的html,您会注意到“checkbox”是该元素的类型。

因此,更改复选框状态的正确方法是,假设“input”是其id(虽然可以附加默认编号):

document.getElementById("input").checked="true";

或您想要使用的任何方法。

这里的要点是你试图改变另一个div的状态。

希望它有所帮助!

答案 2 :(得分:2)

checkbox.setAttribute("checked", "checked"); // set
checkBox.removeAttribute("checked"); // remove

答案 3 :(得分:1)

我不知道您使用的浏览器,但是当我在FF 3.6上测试时,它可以工作。 就像这样:

checkbox.checked = false;

while:

checkbox = document.getElementById('blablabla');

或写得那样

document.getElementById('idhere').checked = false;

答案 4 :(得分:1)

这个问题已经存在了一段时间。无论如何,以下内容适用于我们:

checkbox.childNodes [1] .checked = true; checkBox.childNodes [1] .checked = false;

正如前面的回答所指出的,Dashcode创建这些控件的方式需要通过div包装器,它具有实际ID(本例中为复选框)并设置输入的属性,即子节点1

查找输入的实际“id”会有问题,因为您无法控制将哪个ID分配给节点。例如,如果您有两个复选框,那么第一个将具有'input'作为子节点1的id,第二个具有'input1',除非您在某处使用'input'或'input1'作为id你的设计已经!

可能有另一种方法,但我还没有找到它。

答案 5 :(得分:0)

也许:

checkbox.checked = "checked";

然后:

checkbox.checked = "unchecked";

答案 6 :(得分:0)

cell = row.insertCell(-1);
sel = document.createElement('input');
sel.setAttribute("type", "checkbox")
sel.setAttribute("name", "myCheckBox")
cell.appendChild(sel);
cell.getElementsByTagName('input')[0].checked = true;

我创建一个表,然后行,然后在单元格中创建一个复选框。 我可以抓住第一个输入对象并将检查状态设置为true。

答案 7 :(得分:-2)

var checkbox = document.getElementById(" checkbox");这行有问题,应该是var checkbox = document.getElementById('#checkbox");