好的,所以我正在尝试在 dashcode 中以编程方式更改复选框的状态。我试过了:
var checkbox = document.getElementById("checkbox");
// I have tried all the following methods.
checkbox.checked = false;
checkbox.selected = false;
checkbox.value = false;
好的,所以我正在尝试在 dashcode 中以编程方式更改复选框的状态。我试过了:
var checkbox = document.getElementById("checkbox");
// I have tried all the following methods.
checkbox.checked = false;
checkbox.selected = false;
checkbox.value = false;
Dashboard Widget 仅在 WebKit 技术上运行,因此适用于 Safari 的代码在 Dashcode 中也应该有效。以下任何一项都应该有效:
checkbox.checked = true;
checkbox.setAttribute("checked", "true");
它们不工作的事实表明您的代码中的其他地方存在问题。我会检查线路
var checkbox = document.getElementById("checkbox");
正确地将元素分配给checkbox
变量。此外,检查您的“复选框”元素的 id 是否有效且正确(不重复,没有拼写错误等)。
This question is one month old as I write this answer. It was probably already solved, but in any case I would like to add that if you are using Dashcode, the Checkbox part is a div which contains one label and one input, this one being the "real" checkbox.
If you inspect the html as it is loaded in Safari you will notice that "checkbox" is the type of the element.
Therefore the proper way to change the state of the checkbox would be, assuming "input" is its id (it could have a default number attached though):
document.getElementById("input").checked="true";
or whichever method you want to use.
The main point here is that you were trying to change the state of another div.
Hope it helps!
checkbox.setAttribute("checked", "checked"); // set
checkBox.removeAttribute("checked"); // remove
这个问题已经有一段时间了。无论如何,以下对我们有用:
checkbox.childNodes[1].checked = true; checkBox.childNodes[1].checked = false;
正如在前面的回答中所指出的,Dashcode 创建这些控件的方式需要通过 div 包装器,它具有实际的 ID(本例中的复选框)并设置输入的属性,即子节点 1。
寻找输入的实际“id”将是有问题的,因为您无法控制分配给节点的 id。例如,如果您有两个复选框,则第一个复选框将“输入”作为子节点 1 的 ID,第二个将“输入”作为子节点 1 的 ID,除非您在源中的某处使用“输入”或“输入 1”作为 ID你的设计已经!
可能还有另一种方法,但我还没有找到。
我不知道你用的是哪个浏览器,但是当我在 FF 3.6 上测试时,它可以工作。就像这样:
checkbox.checked = false;
尽管:
checkbox = document.getElementById('blablabla');
或者这样写
document.getElementById('idhere').checked = false;
也许:
checkbox.checked = "checked";
然后:
checkbox.checked = "unchecked";
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;
我创建一个表格,然后是行,然后是单元格,并在其中创建一个复选框。我可以抓住第一个输入对象并将检查状态设置为真。
var checkbox = document.getElementById("checkbox");
这条线有问题,应该是
var checkbox = document.getElementById('#checkbox");