【问题标题】:TextValidator showing browser validation messages when it is set to requiredTextValidator 在设置为 required 时显示浏览器验证消息
【发布时间】:2020-08-19 12:19:10
【问题描述】:

我正在使用 react-material-ui-form-validator 中的 TextValidator,我想要显示 '*'当输入在其输入标签中必需时。但是,将 required 传递为“true”是在进行浏览器验证,而不是通过验证器。 因此,一种方法是通过将“*”附加为“标签名称 *”来更新标签。这意味着对于每个元素,我都会更改标签文本。 但是,我想知道我可以通过 required 但使用验证器而不是浏览器验证的任何选项?

可编辑CodeSandbox,如果您有解决方案,请在此处更新。

【问题讨论】:

    标签: validation material-ui required-field


    【解决方案1】:

    看源码,react-material-ui-form-validator使用react-form-validator-core来生成它的表单。

    检查这个line 表明你传递给ValidatorForm 的任何道具(onSubmitinstantValidateonErrordebounceTimechildren 除外)都传递给form 元素。

    这意味着您可以使用novalidate 属性来禁用浏览器的验证。

    ...
    <ValidatorForm
      ref="form"
      onSubmit={this.handleSubmit}
      onError={(errors) => console.log(errors)}
      noValidate={true} // notice this
    >
      <TextValidator
        label="Email"
        onChange={this.handleChange}
        name="email"
        required // and this
        value={email}
        validators={["required", "isEmail"]}
        errorMessages={["this field is required", "email is not valid"]}
      />
      <DialogActions>
        <Button type="submit">Submit</Button>
      </DialogActions>
    </ValidatorForm>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多