如何更改此JS函数以仅使用逗号分隔字符串中的值检查复选框?使用MySQL我可以使用“IN”函数执行此操作,在Javascript中是否有类似的功能?似乎无法找到..
我想选择值为1,2,3,4,5 ......的“组”复选框,选中后,选中下面的“个人”复选框,单个值为1 .. ..或者... 2 .... ....或3 ....等。
示例:
(复选框1)组1值=“1,2,3”
(复选框2)第1项值=“1”
(复选框3)第2项值=“2”
(复选框4)第3项值=“3”
(复选框5)第4项值=“4”
因此,如果选中复选框1,则会检查复选框2,3,4。
function SetAllCheckBoxes(FormName, FieldName, CheckValue) {
if (!document.forms[FormName]) return;
var objCheckBoxes = document.forms[FormName].elements[FieldName];
if (!objCheckBoxes) return;
var countCheckBoxes = objCheckBoxes.length;
if (!countCheckBoxes) {
objCheckBoxes.checked = CheckValue;
}
else {
// set the check value for all check boxes
for(var i = 0; i < countCheckBoxes; i++) {
objCheckBoxes[i].checked = CheckValue;
}
}
}
答案 0 :(得分:0)
好的,根据这个问题的神秘性来更新我的问题。所以你想看看一个对象是否有一个以逗号分隔的字符串存在的值?如果是这样的话:
function SetAllCheckBoxes(individualCheckbox,values) {
if(!individualCheckbox||!values) {
return;
} else {
var array = values.split(',');
for(var i = 0; i <= array.count(); i++) {
if(individualCheckbox.value == array[i]) {
return true;
}
}
}
}
答案 1 :(得分:0)
1)OMG,使用大括号。
2)这是什么:
if(!countCheckBoxes)
objCheckBoxes.checked = CheckValue;
...如果您没有任何复选框,为什么要将空数组设置为CheckValue?
3)您在页面中获得了1个表单,然后在该表单中查找具有特定名称的元素。你真的期望获得超过1个复选框吗?如果是这样,你的HTML就坏了。你在谈论一组单选按钮吗?
4)你的问题不明确。但答案可能与字符串函数有关,分裂:
var vals = "a,b,c".split(","); // vals == ["a", "b", "c"]
好的,基于澄清问题,我相信您需要以下内容:
function SetAllCheckBoxes(FormName, FieldNames, CheckValue) {
var form = document.forms[FormName];
if (!form) {
return;
}
var checkboxNames = FieldNames.split(",");
for (var i=0, l=checkboxNames.length; i<l; i++) {
var checkboxName = checkboxNames[i].trim(); // needed if your comma separated string may contain spaces
var checkbox = form.elements[checkboxName];
checkbox.checked = CheckValue
}
}