Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在可编辑材质表上,如何限制用户不能输入字符、特殊字符或负数?_Javascript_Reactjs_Material Table - Fatal编程技术网

Javascript 在可编辑材质表上,如何限制用户不能输入字符、特殊字符或负数?

Javascript 在可编辑材质表上,如何限制用户不能输入字符、特殊字符或负数?,javascript,reactjs,material-table,Javascript,Reactjs,Material Table,我使用的是可编辑的材质表,对于其中一列,我希望用户只能输入数字,而不能输入任何字符或特殊字符。我查看了material table网站上的验证部分,但没有任何相关内容 这是站点提供的可编辑材质表的代码示例: function Editable() { const { useState } = React; const [columns, setColumns] = useState([ { title: 'Name', field: 'name' }, { title:

我使用的是可编辑的材质表,对于其中一列,我希望用户只能输入数字,而不能输入任何字符或特殊字符。我查看了material table网站上的验证部分,但没有任何相关内容

这是站点提供的可编辑材质表的代码示例:

function Editable() {
  const { useState } = React;

  const [columns, setColumns] = useState([
    { title: 'Name', field: 'name' },
    { title: 'Surname', field: 'surname', initialEditValue: 'initial edit value' },
    { title: 'Birth Year', field: 'birthYear', type: 'numeric' },
    {
      title: 'Birth Place',
      field: 'birthCity',
      lookup: { 34: 'İstanbul', 63: 'Şanlıurfa' },
    },
  ]);

  const [data, setData] = useState([
    { name: 'Mehmet', surname: 'Baran', birthYear: 1987, birthCity: 63 },
    { name: 'Zerya Betül', surname: 'Baran', birthYear: 2017, birthCity: 34 },
  ]);

  return (
    <MaterialTable
      title="Editable Preview"
      columns={columns}
      data={data}
      editable={{
        onRowAdd: newData =>
          new Promise((resolve, reject) => {
            setTimeout(() => {
              setData([...data, newData]);
              
              resolve();
            }, 1000)
          }),
        onRowUpdate: (newData, oldData) =>
          new Promise((resolve, reject) => {
            setTimeout(() => {
              const dataUpdate = [...data];
              const index = oldData.tableData.id;
              dataUpdate[index] = newData;
              setData([...dataUpdate]);

              resolve();
            }, 1000)
          }),
        onRowDelete: oldData =>
          new Promise((resolve, reject) => {
            setTimeout(() => {
              const dataDelete = [...data];
              const index = oldData.tableData.id;
              dataDelete.splice(index, 1);
              setData([...dataDelete]);
              
              resolve()
            }, 1000)
          }),
      }}
    />
  )
}
函数可编辑(){
const{useState}=React;
const[columns,setColumns]=useState([
{title:'Name',field:'Name'},
{标题:“姓氏”,字段:“姓氏”,initialEditValue:“初始编辑值”},
{title:'Birth Year',字段:'Birth Year',键入:'numeric'},
{
标题:“出生地”,
字段:“出生地”,
查找:{34:'İstanbul',63:'Şanlıurfa'},
},
]);
const[data,setData]=useState([
{姓名:'Mehmet',姓氏:'Baran',出生年份:1987,出生城市:63},
{姓名:'Zerya Betül',姓氏:'Baran',出生年份:2017年,出生城市:34},
]);
返回(
新承诺((解决、拒绝)=>{
设置超时(()=>{
setData([…data,newData]);
解决();
}, 1000)
}),
onRowUpdate:(新数据、旧数据)=>
新承诺((解决、拒绝)=>{
设置超时(()=>{
常量数据更新=[…数据];
const index=oldData.tableData.id;
数据更新[索引]=新数据;
setData([…dataUpdate]);
解决();
}, 1000)
}),
onRowDelete:oldData=>
新承诺((解决、拒绝)=>{
设置超时(()=>{
常量数据删除=[…数据];
const index=oldData.tableData.id;
数据删除。拼接(索引,1);
setData([…dataDelete]);
解决()
}, 1000)
}),
}}
/>
)
}

例如,如何验证用户没有为出生年份输入字符串或负数?任何帮助都将不胜感激。

您的问题已经有了答案。在标题为“出生年份”的列上,类型设置为“数字!”:)

您还可以添加自己的自定义组件来编辑每一列,如下所示:

{ 
title: 'Birth Year', 
field: 'birthYear', 
editComponent: (props: any) => (
  <Input 
    defaultValue={props.value} 
    onChange={(e) => props.onChange(e.target.value)} 
    type="number"
  /> 
},
{
标题:“出生年份”,
字段:“生日”,
editComponent:(道具:任意)=>(
props.onChange(e.target.value)}
type=“编号”
/> 
},

您的问题已经有了答案。在标题为“出生年份”的列上,类型设置为“数字!”:)

您还可以添加自己的自定义组件来编辑每一列,如下所示:

{ 
title: 'Birth Year', 
field: 'birthYear', 
editComponent: (props: any) => (
  <Input 
    defaultValue={props.value} 
    onChange={(e) => props.onChange(e.target.value)} 
    type="number"
  /> 
},
{
标题:“出生年份”,
字段:“生日”,
editComponent:(道具:任意)=>(
props.onChange(e.target.value)}
type=“编号”
/> 
},

在执行此操作时,我如何确保用户不能输入负数?如果您导入自己的输入字段,您可以这样设置最小值:它可以工作,但现在允许用户输入负数,这是不需要的。您可以共享您的代码吗?它应该有min=“0”在输入元素上执行此操作时,如何确保用户不能输入负数?如果您导入自己的输入字段,您可以这样设置最小值:它可以工作,但现在允许用户输入负数,这是不需要的。您可以共享您的代码吗?输入元素上应该有min=“0”