当点击一个按钮时,新的类别会添加到数据库中,也会显示在同一页面上。但我的问题是,当我在按钮上多次单击时,会为同一个复选框值添加多个复选框。只有当它不存在时,我才将其插入数据库。我的问题是,当我点击按钮时,它应该添加类别,如果它不存在于数据库中。我有两个功能
我在页面上显示复选框时就这样做了我使用name = cats []像所有复选框一样的数组
<input type="checkbox" name="cats[]" id="<?php echo $row{'term_id'};?>" value="<?php echo $row{'name'};?>"> <?php echo $row{'name'}; ?> `
在add_cat()函数中,我正在使用此代码
var val = document.getElementById('cat_name').value;
var checkboxes = document.getElementsByName('cats');
var flag = 0;
for (var i = 0, n = checkboxes.length; i < n; i++) {
if (checkboxes[i] == val) {
flag = 1;
}
alert(flag);
} //check the duplicates
if (flag == 1) {
alert(flag);
document.getElementById('error').innerHTML = "Already exists";
setTimeout(function() { // to show the Error
$('#error').fadeIn("fast").delay(500).fadeOut("slow");
}, 1500);
flag = 0;
} else {
var div = document.getElementById('divContainer');
div.innerHTML = div.innerHTML + "<input id='chk_" + idCounter + "' type='checkbox' checked value='" + val + "' /><label for='chk_" + idCounter + "'>" + val + "</label>";
idCounter++;
cat_2_db(val); // call ajax to insert category in database
}
但问题是标志永远不会变为1而复选框变量不会返回复选框值
答案 0 :(得分:1)
你错过了找到价值:
if (checkboxes[i].value === val) {
重构你的for循环
for(var i = 0, i < checkboxes.length; i++) {
if (checkboxes[i].value === val) {
flag = 1;
}
}