javascript - 使用JQuery获取div中未选中复选框的值

标签 javascript php jquery html checkbox

我正在尝试存储一组未选中的 html 复选框中的。我知道 JQuery 没有 :unchecked 选择器,所以我必须反转 :checked 选择器。我已经完成了此操作,并且获得了未选中框的值以及许多其他值,例如 null0。我不知道这些是从哪里来的。

这是我的 HTML:

   <div id="tag_results">
        <ul>
            <li>
                <input type="checkbox" value="29" name="tag" checked=""></input>
                Agriculture
            </li>
            <li>
                <input type="checkbox" value="30" name="tag" checked=""></input>
                Angling
            </li>
            <li>
                <input type="checkbox" value="37" name="tag"></input>
                Animals
            </li>
            <li>
                <input type="checkbox" value="54" name="tag" checked=""></input>
                Arts
            </li>
        </ul>
    </div>

这是我的 JQuery:

    $('#saveBtn').click(function(e){
                e.preventDefault();
                //Get hidden field values and store in an Array

                $tagArray = [];
                $removeTags = [];

                //Get the Checked Tags and store in an Array(will be added)
                $('#tag_results :checked').each(function(){
                    $tagArray.push(this.value);
                });

                //Get the Unchecked Tags and Store in an Array(will be removed)
                $('#tag_results :not(:checked)').each(function(){
                    $removeTags.push(this.value);
                });

                console.log($removeTags);

                //Make Ajax request to the add_tags script and pass Array as parameter. When response recieved show dialog. 
                //Pass the name, id and type of company with the array of tags to the save_tags.php script. 
                $('#active_tags').load('pages/ajax/save_tags.php', {'removeTags': JSON.stringify($removeTags),'tags': JSON.stringify($tagArray) ,'name': $('#comp_name').val(), 'id': $('#comp_id').val(), 'type': $('#type').val() }, function(response, status, xhr){
                });
   });

这是console.log的结果:

Array [ undefined, 0, 0, 0, "37", 0, "54" ]

这是我用来生成复选框的 html 的代码:

$output = "<ul>";
    if(mysql_num_rows($result) > 0){//If results returned (tags found matching letter) so construct list
        while($row = mysql_fetch_array($result)){//while there are rows in the results array add a list item 
            if(in_array($row['name'], $applied_tags)){
                $output .= "<li>" .'<input checked type="checkbox" name="tag" value="'.$row['id'].'">' .$row['name'] .'</li>'.PHP_EOL;
            }else{
                $output .= "<li>" .'<input type="checkbox" name="tag" value="'.$row['id'].'">' .$row['name'] .'</li>'.PHP_EOL;
            }
        }
    }else{//Else there was no matching tags so display an error message to the user. 
        $output .= "<li>No Tags found beginning with the letter " . $letter . "</li>";
    }
    $output .= "</ul>";

有谁知道这可能是什么原因造成的吗?当然,根据上面的代码,数组应该包含值 37 和 54...

最佳答案

试试这个

$("input:checkbox:not(:checked)")

关于javascript - 使用JQuery获取div中未选中复选框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27249722/

相关文章:

javascript - 使用 jquery 显示子元素的悬停元素

javascript - 在图像开关上使用 javascript 淡化背景图像

javascript - JQuery,添加表格行而不在 Javascript 中声明标签

php - 问题 Integrity constraint violation : 1048 Column

javascript - 我应该为不同的设备单独制作 "responding script"吗?

php - strpos 总是返回 true

jquery - 让我的 ajax 更新的 div 淡入

javascript - 即使选择器被删除,Jquery 点击功能仍然有效

javascript - 使用 on() jQuery 方法将 'this' 作为参数传递给事件处理程序

php - 如何让 jQuery 从 mysql_fetch_array 获取 PHP 参数?