jqGrid add class ui-state-disabled 不禁用操作
jqGrid add class ui-state-disabled doesn't disable action
我正在使用 Bootstrap 风格的 jqGrid v 5.1.0。当我将 ui-state-disabled class 应用于寻呼机按钮(添加)时,该按钮看起来已禁用,但在单击时它仍会处理该事件。在以前的版本中,这也用于禁用事件。使用最新的 FF 和 IE。有任何想法吗?谢谢。
编辑 - 添加初始化网格(子)的代码片段。注意添加按钮被禁用的末尾的第二行。该按钮显示为禁用,但单击时会执行该事件。
编辑 2 - 在经历了很多痛苦和眼泪之后,我创造了两个小提琴。 One demonstrates proper disabling of the edit button and Two 是相同的代码,但使用 Bootstrap。编辑按钮未禁用。
// Water Source grid options...
var source_gridOptions = {
caption: 'Associated Water Source(s)',
data: sourceData,
datatype: 'local',
//url: "", // updated dynamically
//mtype: "GET",
styleUI : 'Bootstrap',
colModel: [
{ label: 'Source ID', name: 'ID', key: true, width: 28 },
{ label: 'Case ID', name: 'WATER_CASE_ID', width: 28, hidden: true },
{ label: 'Intake Name', name: 'INTAKE_SOURCE_NAME', width: 50 },
{ label: 'Intake Type', name: 'INTAKE_SOURCE_TYPE', width: 30 },
{ label: 'Source Type', name: 'SOURCE_TYPE', width: 20 },
{ label: 'Water Type', name: 'WATER_TYPE', width: 20 },
{ label: 'Notes', name: 'NOTES', width: 50 },
{ label: 'Verified', name: 'VERIFIED', width: 25 },
],
viewrecords: true,
height: 'auto',
width: initTabWidth, //dynamically set...
rowNum: 5,
pager: "#sourcePager",
gridComplete: function() {
} // end grid complete event
};
// define CRUD options...
var source_editOptions = {};
var source_addOptions = {};
var source_deleteOptions = {};
// init Water Source grid...
$("#sourceGrid").jqGrid(source_gridOptions).navGrid("#sourcePager",{edit:true,add:true,del:true,search:false},source_editOptions,source_addOptions,source_deleteOptions);
$("#add_sourceGrid").addClass('ui-state-disabled'); // <-- disable button
}); // end grid
鉴于您的演示,我能够弄明白。您实际上需要添加 ui-disabled
class 才能工作,而不仅仅是您添加的 disabled
。
我已经在此处修改了您的 fiddle:http://jsfiddle.net/c6860ev8/16/
您可以在 jqGrid 源文件中看到 bootstrap 集成需要 classes:https://github.com/tonytomov/jqGrid/blob/7901d7b7da969de1ca98282c60e335e013dc31ee/js/grid.base.js#L1035
希望对您有所帮助!
我正在使用 Bootstrap 风格的 jqGrid v 5.1.0。当我将 ui-state-disabled class 应用于寻呼机按钮(添加)时,该按钮看起来已禁用,但在单击时它仍会处理该事件。在以前的版本中,这也用于禁用事件。使用最新的 FF 和 IE。有任何想法吗?谢谢。
编辑 - 添加初始化网格(子)的代码片段。注意添加按钮被禁用的末尾的第二行。该按钮显示为禁用,但单击时会执行该事件。
编辑 2 - 在经历了很多痛苦和眼泪之后,我创造了两个小提琴。 One demonstrates proper disabling of the edit button and Two 是相同的代码,但使用 Bootstrap。编辑按钮未禁用。
// Water Source grid options...
var source_gridOptions = {
caption: 'Associated Water Source(s)',
data: sourceData,
datatype: 'local',
//url: "", // updated dynamically
//mtype: "GET",
styleUI : 'Bootstrap',
colModel: [
{ label: 'Source ID', name: 'ID', key: true, width: 28 },
{ label: 'Case ID', name: 'WATER_CASE_ID', width: 28, hidden: true },
{ label: 'Intake Name', name: 'INTAKE_SOURCE_NAME', width: 50 },
{ label: 'Intake Type', name: 'INTAKE_SOURCE_TYPE', width: 30 },
{ label: 'Source Type', name: 'SOURCE_TYPE', width: 20 },
{ label: 'Water Type', name: 'WATER_TYPE', width: 20 },
{ label: 'Notes', name: 'NOTES', width: 50 },
{ label: 'Verified', name: 'VERIFIED', width: 25 },
],
viewrecords: true,
height: 'auto',
width: initTabWidth, //dynamically set...
rowNum: 5,
pager: "#sourcePager",
gridComplete: function() {
} // end grid complete event
};
// define CRUD options...
var source_editOptions = {};
var source_addOptions = {};
var source_deleteOptions = {};
// init Water Source grid...
$("#sourceGrid").jqGrid(source_gridOptions).navGrid("#sourcePager",{edit:true,add:true,del:true,search:false},source_editOptions,source_addOptions,source_deleteOptions);
$("#add_sourceGrid").addClass('ui-state-disabled'); // <-- disable button
}); // end grid
鉴于您的演示,我能够弄明白。您实际上需要添加 ui-disabled
class 才能工作,而不仅仅是您添加的 disabled
。
我已经在此处修改了您的 fiddle:http://jsfiddle.net/c6860ev8/16/
您可以在 jqGrid 源文件中看到 bootstrap 集成需要 classes:https://github.com/tonytomov/jqGrid/blob/7901d7b7da969de1ca98282c60e335e013dc31ee/js/grid.base.js#L1035
希望对您有所帮助!