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

希望对您有所帮助!