首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入模糊和focusIn的验证消息切换

输入模糊和focusIn的验证消息切换
EN

Stack Overflow用户
提问于 2018-10-02 11:11:26
回答 1查看 4K关注 0票数 1

我只想触发输入“模糊不清”的验证,而不是在上面输入。因此,我使用了validateTrigger:'onBlur'方法,它对我来说很好,就像预期的那样。用户焦点/再次单击输入后,验证消息应该消失,有解决方案吗?

代码语言:javascript
复制
<FormItem>
{getFieldDecorator('email', {
    rules: [
        {
          type: 'email', message: 'Valid E-mail required!',
        },
        { required: true, message: 'E-mail required!', whitespace:true }
    ],
    validateTrigger:'onBlur'
})(
    <Input
        placeholder="Email"
    />
)}

EN

回答 1

Stack Overflow用户

发布于 2018-10-09 12:24:29

这可以通过使用蚂蚁设计validateStatus参数来完成。您可以动态地更改给定集合中的状态,即“成功”、“警告”、“错误”、“验证”。

validateStatus:验证表单组件的状态,可以是“成功”、“警告”、“错误”、“验证”。

您需要函数,一个onBlur和其他onFocusFormItem可以编写为:

代码语言:javascript
复制
        <FormItem
          validateStatus={this.state.showError && userNameError ? "error" : ""}
          help={
            this.state.showError && userNameError
              ? "Valid E-mail required!"
              : ""
          }
        >
          {getFieldDecorator("userName", {
            validateTrigger: "onBlur",
            rules: [
              { type: "email", message: "Valid E-mail required!" },
              { required: true, message: "Please input your username!" }
            ]
          })(
            <Input
              placeholder="Email"
              onBlur={this.handleBlur}
              onFocus={this.handleFocus}
            />
          )}
        </FormItem>

这两种方法可以写成:

代码语言:javascript
复制
  handleBlur = e => {
    this.setState({ showError: true });
  };

  handleFocus = e => {
    this.setState({ showError: false });
  };

工作演示在codesandbox.io上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52607176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档