取消选中刚刚基于javascript函数检查的复选框

时间:2011-11-04 21:16:37

标签: javascript function checkbox

我已经全神贯注地寻找答案,并希望有人可以提供帮助。我有一个脚本,当您从一组复选框中选中一个复选框时,该脚本会运行。复选框的值为“customer id”

<input type="checkbox" name="inv_add[]" onclick="setcid(\''.$result['cid'].'\')" value='.$result['id'].'/>

javascript的目的是为隐藏字段指定一个值,告诉下一页所有复选框的客户ID是什么。

如果用户检查分配给不同客户的盒子(因此不属于该组),我想提醒用户,然后取消选中最后一个选中的复选框。 我可以一直看到警报,但无法取消选中用户刚刚检查过的框。

function setcid(cid) {

if (window.set_x === undefined) {
    sethidden = document.getElementById('cid');
    sethidden.value = cid;
    set_x = cid;
    alert ("finished setting x");

    }

    else if (cid !== set_x){
            alert ("You are trying to add two different companies to the same invoice");
                           /*Uncheck the box just checked by user*/
            }

        else {
            alert("they are the same");
                           /*no modification required*/
            }

}

2 个答案:

答案 0 :(得分:4)

您可以在调用函数时传递this对象:

http://jsfiddle.net/msV24/

HTML

<input type="checkbox" name="inv_add[]" onclick="setcid(\''.$result['cid'].'\',this)" value='.$result['id'].'/>

的javascript

function setcid(cid, sender) {

...

    else if (cid !== set_x){
        alert ("You are trying to add two different companies to the same invoice");
                       sender.checked = false;
        }

    else {
        alert("they are the same");
                       /*no modification required*/
        }

}

答案 1 :(得分:0)

我会指定您的复选框和ID chk_[TheIdOfTheHiddleField]

<input type="checkbox"
       id='.$result['id'].'
       name="inv_add[]"
       onclick="setcid(\''.$result['cid'].'\')"
       value='.$result['id'].' />

然后取消检查:

document.getElementById("chk_" + cid).checked = false;