使用Javascript获取所有复选框的值

时间:2014-05-10 08:49:23

标签: javascript php html mysql checkbox

当点击一个按钮时,新的类别会添加到数据库中,也会显示在同一页面上。但我的问题是,当我在按钮上多次单击时,会为同一个复选框值添加多个复选框。只有当它不存在时,我才将其插入数据库。我的问题是,当我点击按钮时,它应该添加类别,如果它不存在于数据库中。我有两个功能

  1. add_cat();调用ajax以将新类别添加到数据库的javascript函数。
  2. 是php函数,用于创建新页面。
  3. 我在页面上显示复选框时就这样做了我使用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而复选框变量不会返回复选框值

1 个答案:

答案 0 :(得分:1)

你错过了找到价值:

if (checkboxes[i].value === val) {

重构你的for循环

for(var i = 0, i < checkboxes.length; i++) {
    if (checkboxes[i].value === val) {
        flag = 1;
    }
}