好的,我试图在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;
控制面板小部件只是在基于WebKit技术的环境下运行,因此适用于Safari的代码在Dashcode中也应该有效。以下任意一种方法都可以:
checkbox.checked = true;
checkbox.setAttribute("checked", "true");
它们不起作用的事实表明您的代码中其他地方存在问题。我建议检查该行:
The fact that they are not working indicates there is a problem elsewhere in your code. I would check the line
var checkbox = document.getElementById("checkbox");
正确地将一个元素分配给checkbox
变量。同时,请检查你的"checkbox"元素的id是否有效和正确(不是重复的,没有错别字等)。
document.getElementById("input").checked="true";
或者您想使用的任何方法。
这里的主要问题是您试图更改另一个div的状态。
希望能对您有所帮助!
checkbox.setAttribute("checked", "checked"); // set
checkBox.removeAttribute("checked"); // remove
我不知道你用的是哪个浏览器,但当我在FF 3.6上测试时,它可以正常工作。 就像这样放置:
checkbox.checked = false;
当:
checkbox = document.getElementById('blablabla');
或者写成这样
document.getElementById('idhere').checked = false;
这个问题已经存在一段时间了。不过,以下方法对我们有效:
checkbox.childNodes[1].checked = true; checkBox.childNodes[1].checked = false;
正如之前的答案所指出的那样,Dashcode创建这些控件的方式需要通过div包装器,获取实际ID(在此示例中为checkbox),并设置输入属性,即子节点1。
查找输入的实际“id”可能会有问题,因为您无法控制分配给节点的id。例如,如果您有两个复选框,则第一个复选框的子节点1将具有“input”作为id,而第二个复选框则为“input1”,除非您已经在设计中使用了“input”或“input1”作为id!
可能还有另一种方法,但我还没有找到。
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;
也许:
checkbox.checked = "checked";
然后:
checkbox.checked = "unchecked";
var checkbox = document.getElementById("checkbox");
这行代码有问题,应该是
var checkbox = document.getElementById('#checkbox");