我已经全神贯注地寻找答案,并希望有人可以提供帮助。我有一个脚本,当您从一组复选框中选中一个复选框时,该脚本会运行。复选框的值为“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*/
}
}
答案 0 :(得分:4)
您可以在调用函数时传递this
对象:
<input type="checkbox" name="inv_add[]" onclick="setcid(\''.$result['cid'].'\',this)" value='.$result['id'].'/>
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;