javascript - 在 jquery jtable 中启用/禁用 'add new' 按钮

标签 javascript jquery mysql jsp jquery-jtable

我正在使用 jquery jtable 来显示来自 mysql 数据库的表。在其中一个表中,我希望允许用户只插入一行。即在插入第一行后禁用 add new record 按钮。

这有可能吗?

我为 jtable 定义了以下结构:

$('#SchoolTableContainer').jtable({
    title : 'Schools List',
    paging: true, //Enable paging
    pageSize: 10, //Set page size (default: 10)
    sorting: true, //Enable sorting
    defaultSorting: 'name ASC', //Set default sorting
    actions : {
            listAction : 'ControllerAdminSchool?action=list',
            createAction : 'ControllerAdminSchool?action=create',
            updateAction : 'ControllerAdminSchool?action=update',
            deleteAction : 'ControllerAdminSchool?action=delete'
    },
    fields : {
            id : {
                title : 'School Id',
                key : true,
                list : false
            },
            name : {
                title : 'Name'
            },
            address : {
                title : 'Address'
            },
            email : {
                title : 'Email'
            },
            phone : {
                title : 'Phone'
            },
            website : {
                title : 'Website'
            },
            remark : {
                title : 'remark'
            }
    }
  });
  $('#SchoolTableContainer').jtable('load');

同样可以根据某些条件(例如,如果 name 有一些特定的值说admin 然后禁用删除)?

还有如何在每一行中添加自定义按钮(例如,要查看详细信息,我可以单击 view 按钮并可以查看相应行的完整详细信息)?

最佳答案

  • 要动态禁用“添加新记录”功能,您可以通过定义处理 recordsLoaded 的函数来删除按钮。事件:

    recordsLoaded: function(event, data) {
      var rowCount = data.records.length;
      if (rowCount>=1){
         $('#tableContainer').find('.jtable-toolbar-item.jtable-toolbar-item-add-record').remove();
      }
    }
    

类似地,为了保持表的行为连贯,您应该为事件 rowInserted 实现相同类型的逻辑。和 rowsRemoved .

我知道这是 DOM 摆弄而不是控制 jtable 的行为以停止提供操作,但是 hikalkan(jtable 的作者)的回答 here让我相信这是首选方法。

  • 对于每行上的自定义按钮,我通常会实现描述的第一个解决方案 here .

关于javascript - 在 jquery jtable 中启用/禁用 'add new' 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255151/

相关文章:

javascript - 检查每个输入是否有值(value)

javascript - jQuery .html ('<img>' ) 在 FF 和 Opera 中不起作用

javascript - 阻止现场在线跟踪

mysql - 1054,字段列表中的未知列 'index'

mysql - Rails 服务器未在端口 3000 "TCPServer Error: Permission denied - bind (2)"上启动

javascript - 如何更改 Bootstrap 标签输入的样式

javascript - 使用 window.frames 属性获取 iframe 与 iframe ID

javascript - 为什么反转全局正则表达式总是在 JavaScript 中返回 true

mysql - 什么是Sql查询来知道mysql中数据库是否已存在

javascript - 如何在 jQuery Mobile 中更改选项卡时捕获事件