Javascript 如何在单击时获取未选中复选框的值?

Javascript 如何在单击时获取未选中复选框的值?,javascript,php,jquery,html,codeigniter,Javascript,Php,Jquery,Html,Codeigniter,我想在选中和取消选中单个复选框时获取其值。。我目前正在开发codeigniter FW。我在单击复选框时获取其值,但在单击时无法获取未选中复选框的值。请帮帮我!!我的代码如下 <table> <thead> <tr> <td></td> <td></td> <td></td> &

我想在选中和取消选中单个复选框时获取其值。。我目前正在开发codeigniter FW。我在单击复选框时获取其值,但在单击时无法获取未选中复选框的值。请帮帮我!!我的代码如下

    <table>
    <thead>
        <tr>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
        </tr>
    </thead>
    <tbody>
        <tr>
          <td>
            <input name="feature" type="checkbox" id="10" value="10" />
          </td>

          <td>
            <input name="feature" type="checkbox" id="11" value="11" />    
          </td>

          <td>
            <input name="feature" type="checkbox" id="12" value="12" />    
          </td>

          <td>
            <input name="feature" type="checkbox" id="13" value="13" />    
          </td>
        </tr>
    </tbody>    
</table>



<script type="text/javascript">
    $("input:checkbox").change(function() {
        var someObj = {};
        someObj.fruitsGranted = [];
        var feature , key;

        $("input:checkbox").each(function() {
            if ($(this).is(":checked")) {
                key = someObj.fruitsGranted.push($(this).attr("feature"));
                someObj.fruitsGranted.push($(this).attr("id"));
                feature = $(this).attr("id");
                //key = $(this).attr("feature");
            } 
        });

        alert("GRANTED: " + feature + " ok " + key);
    });
</script>

$(“输入:复选框”).change(函数(){
var someObj={};
someObj.fructsgranted=[];
var特征,关键;
$(“输入:复选框”)。每个(函数(){
如果($(this).is(“:checked”)){
key=someObj.fruitsGranted.push($(this.attr(“feature”));
someObj.fruitsGranted.push($(this.attr(“id”));
feature=$(this.attr(“id”);
//key=$(this.attr(“feature”);
} 
});
警报(“已授予:+功能+“确定”+键);
});

更改
功能将针对当前复选框的选中/取消选中执行。 因此,您可以在执行每个函数之前提取这些信息

$("input:checkbox").change(function() {
    var someObj = {};
    someObj.fruitsGranted = [];
    var feature , key;
    // you may extract all info from $(this) here on check/uncheck
    alert("Checked " + $(this).is(":checked"));
    // your rest code
});
你可能正在尝试做一些类似购物车的事情。简化你的逻辑

// Declare data variables outside
var someObj = {};
someObj.fruitsGranted = [];

// register event for all checkboxes
$("input:checkbox").change(function() {
    var feature , key;
    if ($(this).is(":checked")) {
        // get key/value and push into declared object's array
        // alert if needed : alert("GRANTED: " + feature + " ok " + key);
    } else {
        // on uncheck
        // get key/value and remove from object's array
       // alert if needed : alert("REVOKED: " + feature + " ok " + key);
    }
});

要查找未选中的复选框值,可以尝试以下操作

<script type="text/javascript">
    $("input:checkbox").change(function() {
        var someObj = [];
        $("input:checkbox").each(function() {
            console.log($(this).prop('checked'));
            if ($(this).prop('checked') === false) {
                someObj.push({feature:$(this).attr('id'),key:$(this).val()});
            } 
        });
        console.log(someObj);
    });
</script>

$(“输入:复选框”).change(函数(){
var someObj=[];
$(“输入:复选框”)。每个(函数(){
console.log($(this.prop('checked'));
if($(this).prop('checked')==false){
someObj.push({feature:$(this.attr('id'),key:$(this.val()});
} 
});
console.log(someObj);
});

您的代码尝试似乎不符合您的要求<代码>$(“输入:复选框”).change(function(){if(!$(this).is(“:checked”){$(this).attr(“id”)…通过添加
$(“输入:复选框”)。每个(
),您的键/功能将始终从最后一个复选框中删除
。每个
并使用
$(this).is(:checked)
查看是否勾选了当前复选框。@freedomn-m感谢您的评论,但我需要在复选框未选中时获取其值。。当前,我在复选框未选中时获取其值。我不确定差异。
change
会为选中/取消选中和
触发,这将是复选框-因此
$(this).val()
是该值,上面的链接和注释显示是否选中该值。