需要运行基于条件的函数

时间:2012-07-19 19:28:29

标签: javascript readonly

我正在尝试为一些复选框分配一个函数,但我只想根据条件添加它们,在本例中是表单的步骤编号。这是一种迂回的方式,使复选框在选择(或不选择)之后只读。因此,在步骤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)");
}

3 个答案:

答案 0 :(得分:0)

您正在参数中传递元素,因此请使用:

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

您还可以使用属性:

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

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

答案 1 :(得分:0)

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

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


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

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

答案 2 :(得分:0)

这是一个需要jquery的解决方案,但是一旦点击一个,就可以使用.click函数来禁用复选框。

这是一个有效的例子:

http://jsfiddle.net/uPsm7/