Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 - Fatal编程技术网

Javascript 如何在单击按钮时显示不同的错误消息?

Javascript 如何在单击按钮时显示不同的错误消息?,javascript,reactjs,Javascript,Reactjs,您能告诉我如何在点击按钮时显示不同的错误信息吗?实际上,当模式不匹配时,应该显示模式不匹配。目前我只能显示必需的消息。这是我的代码 <TextField inputRef={register({ required: true, pattern: /^[A-Za-z]+$/i })} label="First name" variant="outlined" name="firstName"

您能告诉我如何在点击按钮时显示不同的错误信息吗?实际上,当
模式
不匹配时,应该显示
模式不匹配
。目前我只能显示
必需的
消息。这是我的代码

 <TextField
          inputRef={register({ required: true, pattern: /^[A-Za-z]+$/i })}
          label="First name"
          variant="outlined"
          name="firstName"
          required
          helperText={errors.firstName && "First name is required"}
          error={errors.firstName ? true : false}
        />


您可以使用类似于包的东西。使用它,您将能够减少编写自己验证所需的代码量,也可以考虑角情况。

首先定义验证函数:

import validator from 'validator';
const required = (value) => {
  if (!value.toString().trim().length) {
    // We can return string or jsx as the 'error' prop for the validated Component
    return 'require';
  }
};

const email = (value) => {
  if (!validator.isEmail(value)) {
    return `${value} is not a valid email.`
  }
};
...
然后,在需要时,将它们插入您的表单:

export default class Login extends Component {
    render() {
        return <Form>
            <h3>Login</h3>
            <div>
                <label>
                    Email*
                    <Input value='email@email.com' name='email' validations={[required, email]}/>
                </label>
            </div>
...
导出默认类登录扩展组件{
render(){
返回
登录
电子邮件*
...

查看他们的文档。这是一个应用非常广泛的软件包,应该很容易实现。

希望这与您的示例相符
用您的正则表达式替换正则表达式

从“React”导入React;
从“react dom”导入react dom;
从“react hook form”导入{useForm};
从“@material ui/core”导入{TextField,Button}”;
从“@material ui/lab/Autocomplete”导入自动完成;
从“yup”导入{object,string};
类用户名扩展了React.Component{
建造师(道具){
超级(道具)
this.state={errorText:'',值:props.value}
}
onChange(事件){
if(event.target.value.match(/[abc]/g)){
this.setState({errorText:'errr'})
}否则{
this.setState({errorText:'无效格式'})
}
}
render(){
返回(
)
}
}
const rootElement=document.getElementById(“根”);

ReactDOM.render(,rootElement);
你可能需要一个全面的验证服务/libshow你能给我一个例子吗你能用一些例子改变代码沙盒吗有一些相关的lib,但是如果你想自己做,这里有一个我的例子你能在我的例子中使用吗请在我的例子中帮助更新