Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测jqGrid单元中的复选框事件_Javascript_Jquery_Checkbox_Jqgrid_Jquery Events - Fatal编程技术网

Javascript 检测jqGrid单元中的复选框事件

Javascript 检测jqGrid单元中的复选框事件,javascript,jquery,checkbox,jqgrid,jquery-events,Javascript,Jquery,Checkbox,Jqgrid,Jquery Events,在学习Javascript和jQuery的过程中,我正在探索jqGrid,我设法在网格单元格中放置了一个复选框,太棒了 以下是我所拥有的: $("#myTable").jqGrid({ colModel:[ name:'cb', index:'cb', width:40, sorttype:"text", align:"center", edittype:"checkbox", editopt

在学习Javascript和jQuery的过程中,我正在探索
jqGrid
,我设法在网格单元格中放置了一个
复选框,太棒了

以下是我所拥有的:

$("#myTable").jqGrid({
  colModel:[
     name:'cb', index:'cb', width:40, sorttype:"text", align:"center",
     edittype:"checkbox", editoptions:{value:"Yes:No"}, formatter: "checkbox",
     formatoptions: {disabled : false}},
     other stuff...
  ]
单击复选框时,如何捕获事件并确定相应的行数据


此外,当我单击复选框时,客户端的基础数据是否已更新(cb字段是否切换为“是”/“否”)?如何实现这一点?

首先,您不应该使用
'cb'
作为列的
名称,因为它是保留列名。另外两个保留列名是
'subgrid'
'rn'
。如果你不想有奇怪的问题,就用别的名字吧

您必须手动将
单击
事件绑定到事件处理程序。要做到这一点,你有一些选择

您可以将
单击
绑定到
加载完成
回调中的所有复选框。查看使用jQuery枚举所有复选框的位置。显示了一种更有效的方法,它使用了
的DOM支持已经本地实现的
单元格
集合这一事实。因此,您可以通过
loadComplete
内的
this.rows[iRow].cells[iCol]
访问

还有一种方法是使用而不是
formatter:'checkbox'
并使用
onclick
属性进行绑定

已更新:如果在网格中使用本地数据,则必须手动更新相应的值。例如,见。它描述了如何使用jqGrid的
getLocalRow
data
\u index
内部参数

要获取用户单击的行的
id
,可以使用当前事件
$(e.target).closest(“tr.jqgrow”).attr('id')