Javascript jqGrid在隐藏字段中获取未选中复选框值

Javascript jqGrid在隐藏字段中获取未选中复选框值,javascript,jquery,html,checkbox,jqgrid,Javascript,Jquery,Html,Checkbox,Jqgrid,jqGrid结构: 获取所选ID的代码 <input type="hidden" name="emp_id_checked" value=""/> <script> var Ids = jQuery("#task-grid").jqGrid('getGridParam','selarrrow'); var empIds = $("input[type=hidden][name=emp_id_unchecked]").val(Ids); </script> 当

jqGrid结构:

获取所选ID的代码

<input type="hidden" name="emp_id_checked" value=""/>
<script>
var Ids = jQuery("#task-grid").jqGrid('getGridParam','selarrrow');
var empIds = $("input[type=hidden][name=emp_id_unchecked]").val(Ids);
</script>
当在页面加载中选中复选框时,我的ID为12860,但如果未选中复选框值12860,我如何将其传递给隐藏的输入字段

谢谢,onSelectAll回调是在选择/取消选择行时执行任何附加操作的最佳位置。collback的第二个参数状态通知行/行是否将被选中

更新:我为你创造了。我将未选中行的rowid列表放在visible元素中,只是为了便于查看结果。我使用了以下代码:

multiselect: true,
unselectedRowIds: [], // custom option where we will hold unselected ids
onSelectRow: function (rowid, status) {
    var p = $(this).jqGrid("getGridParam"), i = $.inArray(rowid, p.unselectedRowIds);
    //alert("row with id=" + rowid + " is " + (status ? "selected" : "unselected"));
    if (status && i >= 0) {
        // need be removed
        p.unselectedRowIds.splice(i, 1);
    } else if (!status && i < 0) {
        p.unselectedRowIds.push(rowid);
    }

    // update "hidden" control
    $("#unselectedRows").text(p.unselectedRowIds.join(","));
},
onSelectAll: function (rowids, status) {
    var p = $(this).jqGrid("getGridParam");

    if (status) {
        p.unselectedRowIds = [];
    } else {
        p.unselectedRowIds = rowids.slice(0); // copy of the array
    }

    // update "hidden" control
    $("#unselectedRows").text(p.unselectedRowIds.join(","));
},
loadComplete: function () {
    $("#cb_" + $.jgrid.jqID(this.id)).click(); // select all rows
}

请务必注意,您应该删除不需要的cellEdit:true选项网格没有任何可编辑列,因为该选项会更改行选择的行为。

如何使用OnSetrow获取未选中的复选框值?@slimshaddyyy:我不明白您的意思?例如,如果选中或取消选中第12860行中的复选框,则将使用第一个参数rowid等于12860调用onsetrow回调,第二个布尔参数将通知您是选中还是取消选中该行。因此,您只需在jqGrid中包含您的回调OnSetrow,并在回调中执行任何必需的操作。请将此内容与如何使用OnSetrow的代码一起发布,并在隐藏输入中传递该id?@slimshaddyyy:抱歉,但您应该发布显示如何创建jqGrid的代码。你写了一些与jqGrid无关的隐藏输入。我希望看到你的代码后,我能更好地理解你。我将通知您在代码中可以将OnSeRow放在哪里。@slimshaddyyy:我无意中发现您更新了问题的文本。请总是写信给所有与你沟通的人,让他们评论这个问题。
multiselect: true,
unselectedRowIds: [], // custom option where we will hold unselected ids
onSelectRow: function (rowid, status) {
    var p = $(this).jqGrid("getGridParam"), i = $.inArray(rowid, p.unselectedRowIds);
    //alert("row with id=" + rowid + " is " + (status ? "selected" : "unselected"));
    if (status && i >= 0) {
        // need be removed
        p.unselectedRowIds.splice(i, 1);
    } else if (!status && i < 0) {
        p.unselectedRowIds.push(rowid);
    }

    // update "hidden" control
    $("#unselectedRows").text(p.unselectedRowIds.join(","));
},
onSelectAll: function (rowids, status) {
    var p = $(this).jqGrid("getGridParam");

    if (status) {
        p.unselectedRowIds = [];
    } else {
        p.unselectedRowIds = rowids.slice(0); // copy of the array
    }

    // update "hidden" control
    $("#unselectedRows").text(p.unselectedRowIds.join(","));
},
loadComplete: function () {
    $("#cb_" + $.jgrid.jqID(this.id)).click(); // select all rows
}