在 cellEditable 材质表上,如何限制用户输入负数?

Posted

技术标签:

【中文标题】在 cellEditable 材质表上,如何限制用户输入负数?【英文标题】:On an cellEditable material-table, how to restrict the user from entering negative number? 【发布时间】:2021-06-11 03:03:45 【问题描述】:

我在我的项目中使用可编辑的材料表单元格。我想限制用户在该字段中输入否定的 no。另外,抛出错误验证。如何实现?

https://codesandbox.io/s/material-demo-forked-h1f8d?file=/demo.js:609-979

 <MaterialTable
      title="Cell Editable Preview"
      columns=columns
      data=data
      cellEditable=
        onCellEditApproved: (newValue, oldValue, rowData, columnDef) => 
          return new Promise((resolve, reject) => 
            console.log("newValue: " + newValue);
            setTimeout(resolve, 1000);
          );
        
      
    />

【问题讨论】:

【参考方案1】:

Material-table 通过列支持validation。您必须在列中添加验证键,然后根据您的要求进行验证。例如:

columns=[
    
          title: 'Name', field: 'name',  validate: rowData => rowData.name === '' ? 'Name cannot be empty' : ''
    ,     
]

如果名称为空,上述代码将报错。您可以对案例中所需的单元格执行相同的操作。

【讨论】:

嗨。我看到它在代码中不起作用......你可以在codesanbox中添加它并检查:codesandbox.io/s/material-demo-forked-h1f8d?file=/… title: "Surname", field: "surname", initialEditValue: "initial edit value", validate: rowData =&gt; rowData.surname === '' ? 'Surname cannot be empty' : '' , 是的,我试过了......但我正在使用 cellEditable,但它不起作用 我看到了,但没有帮助

以上是关于在 cellEditable 材质表上,如何限制用户输入负数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 cellEdit 之后强制从持久存储重新加载核心数据

如何在JQuery数据库CellEdit上集成Select2插件?

ExtJS 4.0中如何获取Ext.grid.plugin.CellEditing,表格单元中被修改的数据

GAMES202 笔记-实时基于物理的材质

使用 Ext.grid.plugin.CellEditing 编辑后远程保存 onblur

索引如何作用于视图?