我正在使用jqgrid使用multiselect选项。有两个不同的功能,我必须执行。jQgrid:禁用复选框单击并仅在复选框被单击时选中复选框
功能1: 我必须禁用检查复选框取决于某些条件。为此,我在beforrowselect事件中使用下面的代码块。
beforeSelectRow: function(rowid, e) {
if($("#jqg_TableId_"+rowid).attr("disabled")){
return false;
}
return true;
}
该功能在这段代码中正常工作。
功能2:但问题是,当我点击行中的任何地方,复选框被选中,但复选框值没有出来正确。当我在复选框区域内点击时,复选框的值是准确的。为此,我想限制用户点击复选框区域以点击复选框。为此,我使用下面提到的代码块。
beforeSelectRow: function(rowid, e) {
return $(e.target).is('input[type=checkbox]');
},
如果我单独使用任何一个块,那么它的工作正常的功能。 我需要实现这两个功能,但都返回值。这两种情况都不可能返回值。请帮助我如何实现这两个功能。
下面是我必须实现的完整代码。
beforeSelectRow: function(rowid, e) {
if($("#jqg_TableId_"+rowid).attr("disabled")){
return false;
}
return true;
}
return $(e.target).is('input[type=checkbox]');
},
beforeSelectRow中用于禁用复选框选择的块按预期工作,但rowattr事件不按照需求工作。整个行在返回“class”时禁用:“ui-state-disabled ui-jqgrid-disablePointerEvents”。只需点击复选框区域即可检查复选框。 – user2992704
@ user2992704:是的,这是我的预期。设置行禁用可以一次完成两件事:向用户显示哪些行不能被选择2)通过选择所有行来解决问题。我们可以使用其他一些预定义的类:'ui-subgrid','jqgroup'或'jqfoot'。见https://jsfiddle.net/OlegKi/4ga1ekh3/5/-一个**必须结合**'rowattr'和'beforeSelectRow'。 – Oleg