0

我正在尝试为几个复选框分配一个功能,但我只想根据条件添加它们,在这种情况下是表单的步骤号。这是使复选框在被选中(或未被选中)后只读的一种迂回方式。因此,在第 1 步,我希望用户选择 cb1 或 cb2,但在第 2 步,我想分配不会更改复选框值的函数。

我究竟做错了什么?

function functionOne() {
    this.checked = !this.checked
};
if (document.getElementById("stepNumber").value == 2) {
    document.getElementById("cb1").setAttribute("onkeydown", "functionOne(this)");
    document.getElementById("cb2").setAttribute("onkeydown", "functionOne(this)");
}
4

3 回答 3

0

为什么不在选择上禁用复选框?

Function onCheck(elm)
{
    document.getElementById("cbValue").value = elm.value;
    elm.disabled = true;
}


<input id="cbValue" type="hidden" />

使用隐藏的输入字段允许表单将数据发送回服务器。

于 2012-07-19T20:07:42.667 回答
0

这是一个需要 jquery 的解决方案,但您可以使用 .click 功能在单击复选框后禁用复选框。

这是一个工作示例:

http://jsfiddle.net/uPsm7/

于 2012-07-19T20:10:31.917 回答
0

您在参数中传递元素,所以使用它:

function functionOne(elem) {
    elem.checked = !elem.checked
};

您还可以使用属性:

document.getElementById("cb1").onkeydown = functionOne;
document.getElementById("cb2").onkeydown = functionOne;

function functionOne() {
    this.checked = !this.checked
};
于 2012-07-19T19:33:58.040 回答