让 React 在表单输入字段下显示单独的错误消息

2024-05-03

我正在提交一个返回一系列错误的表单,但我无法弄清楚如何让每个单独的错误出现在正确的输入字段下。现在,所有错误都会打印在每个输入字段下。我在用着react-bootstrap。任何帮助,将不胜感激。

getValidationState() {
  var errors = this.state.errors;
  if (!$.isEmptyObject(errors))
  {
    errors.forEach(function(error) {
      console.log("error:", error.name);
    });
  }
}

render() {
  const inputProps = {
    value: this.state.address,
    onChange: this.onChange,
  }
  return (
    <form onSubmit={this.handleSubmit.bind(this)}>
      <FormGroup
        validationState={this.getValidationState()} >
        <FormControl
          type="text"
          name="firstName"
          value={this.state.firstName}
          placeholder="First name"
          onChange={this.handleChange}
        />
        <FormControl.Feedback />
        {this.state.errors && this.state.errors.length &&
          <HelpBlock>
            {this.state.errors.map((error, i) => <p key={i}>HEllo{error.value}</p>)}
          </HelpBlock>
        }


      </FormGroup>
      <FormGroup >
        <FormControl
          type="text"
          name="lastName"
          value={this.state.lastName}
          placeholder="Last name"
          onChange={this.handleChange}
        />
        {this.state.errors && this.state.errors.length &&
          <HelpBlock>
            {this.state.errors.map((error, i) => <p key={i}>HEllo{error.value}</p>)}
          </HelpBlock>
        }
      </FormGroup>


      <FormGroup >
        <Button type="submit">
          Save
        </Button>
      </FormGroup>
    </form>
  )
}

每个输入的错误消息应单独存储和显示(也通过使用状态):

constructor(props){
  super(props)
  this.state = {
      firstNameErr: '',
      lastNameErr: '',
  }
  this.getValidationState = this.getValidationState.bind(this);
}

getValidationState() {
  var errors = this.state.errors;
  if (!$.isEmptyObject(errors))
  {
    var firstErr = '';
    var lastErr = '';
    errors.forEach((error) => {
      console.log("error:", error.name);
      // Check each error to see which input it belongs to
      // NOTE: please also consider using error.name instead, if error.message is invalid, thanks!
      if(error.message.indexOf('firstName') != -1){
        firstErr = error.message;
      }
      if(error.message.indexOf('lastName') != -1){
        lastErr = error.message
      }     

    });

    this.setState({
      firstNameErr: firstErr,
      lastNameErr: lastErr,
    });

  }
}

render() {
  const inputProps = {
    value: this.state.address,
    onChange: this.onChange,
  }
  return (
    <form onSubmit={this.handleSubmit.bind(this)}>

      <FormGroup
        validationState={this.getValidationState()} >
        <FormControl
          type="text"
          name="firstName"
          value={this.state.firstName}
          placeholder="First name"
          onChange={this.handleChange}
        />
        <FormControl.Feedback />
        <HelpBlock>
          <p className="text-danger">{this.state.firstNameErr}</p>
        </HelpBlock>
      </FormGroup>

      <FormGroup >
        <FormControl
          type="text"
          name="lastName"
          value={this.state.lastName}
          placeholder="Last name"
          onChange={this.handleChange}
        />
        <HelpBlock>
          <p className="text-danger">{this.state.lastNameErr}</p>
        </HelpBlock>
      </FormGroup>


      <FormGroup >
        <Button type="submit">
          Save
        </Button>
      </FormGroup>
    </form>
  )
}

这就是想法,如果它还不起作用,请向我显示您控制台中的一些错误,谢谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 React 在表单输入字段下显示单独的错误消息 的相关文章

随机推荐

  • 如何检测图像中对象的实例?

    我有一张包含几个特定对象的图像 我想检测这些物体在该图像中的位置 为此 我有一些模型图像 其中包含我想要检测的对象 这些图像在我想要检测的对象实例周围得到了很好的裁剪 这是一个例子 在这张大图里 我想检测此模型图像中表示的对象 自从你最初发
  • 使用 Swift 获取 UITableViewCell 中 UITextField 的 indexPath

    因此 我正在构建一个详细视图控制器应用程序 它显示一个包含两部分单元格的表格 标签和文本字段 我正在尝试检索文本字段值并将其添加到数组中 我尝试使用 textField superview superview 技术 但没有成功 func t
  • Android - GC 滞后于列表视图滚动“更大”的图像

    在列表视图中 我想在列表条目上绘制一个图像 这 20 张图像必须缩放以填充垂直模式的宽度 手机分辨率为 480 x 800 像素 SGS2 图像分辨率为 400x400 大小约为 100KB 我已将图像放在可绘制文件夹中 当我滚动列表时 它
  • 如何搜索 Google 电子表格?

    我正在进行一些详尽的搜索 需要确定电子表格中是否已存在新域 URL 然而 所有 Spreadsheet 对象都没有搜索功能 即大多数 Document 对象中的 findText 功能 我觉得我错过了一些重要的事情 我缺少什么 查找文本函数
  • 在开始 Web 开发项目之前,您如何估计要花费的时间? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当你告诉你的客户或经理这可以在10天内完成 但你花了20天才得到一个点 甚至还没有部署到现场时 感觉真的很糟糕 任何经验都可以与我分享您是如何估
  • WPF 绑定默认模式

    在我的一个应用程序中 我有这样的代码
  • RestClient发送IFormFile

    我从我的控制器收到一个文件 public async Task
  • MySQL 的 read_sql() 非常慢

    我将 MySQL 与 pandas 和 sqlalchemy 一起使用 然而 它的速度非常慢 对于一个包含 1100 万行的表 一个简单的查询需要 11 分钟以上才能完成 哪些行动可以改善这种表现 提到的表没有主键 并且仅由一列索引 fro
  • 如何在 Xamarin.Forms.Maps 中使用深色模式 Google 地图?

    我正在尝试使用 Xamarin Forms Maps nuget 包在我的 Xamarin Forms 应用程序中使用深色模式 Google 地图 我已经成功地在 iOS 地图上使用了 OnElementChanged if e NewEl
  • 如何在 Dart 中向枚举添加方法或值?

    在Java中 当您定义枚举时 您可以执行类似于以下的操作 即向枚举添加成员enum 这在 Dart 中可能吗 enum Foo one 1 two 2 final num value Foo this value 从 Dart 2 6 开始
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • PostgreSQL 选择结果大小

    我在 PostgreSQL 数据库中有一个表 并从该表中进行一些限制的选择 并且我想知道该选择有多少磁盘空间 我知道有一个postgres函数pg total relation size这给了我数据库中某个表的大小 但是如何找到 子表 的大
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • jquery datetimepicker 24小时时间格式

    我正在使用 datetimepicker js 来选择 jquery 的日期和时间 如何将时间格式从 12 小时制更改为 24 小时制 我得到了答案 您只需要在 24 小时制的格式中提及 HH mm 或在 12 小时制的格式中提及 hh m
  • 数据表到 JSON [重复]

    这个问题在这里已经有答案了 我最近需要将数据表序列化为 JSON 我现在仍然使用 Net 2 0 因此我无法在 Net 3 5 中使用 JSON 序列化器 我想这肯定是以前做过的 所以我上网查了一下found http www codepr
  • sed:更改 .yml 文件中环境属性的值

    我有一个 yml 文件 用于配置应用程序的环境属性 如下所示 env1 prop1 value1 prop2 value2 propn valuen env2 prop1 value1 prop2 value2 prop3 value3 p
  • jquery中的三美元符号是什么?

    我正在尝试调试某人的代码 并遇到了这个 ajax url ajax url param context formDialog success function data this html data BindPopupFormEvents
  • 当 URL 可在浏览器中访问时,SSH Curl 不起作用

    This post is linked with another post of mine still unsolved Laravel 作曲家更新 连接被拒绝 https stackoverflow com questions 52404
  • 为什么 gettext 没有数据库存储选项?

    我正在使用 Django 在基于 Web 的应用程序上进行一些 i18n 操作 该应用程序使用 gettext 作为其 i18n 基础 翻译应该存储在数据库中似乎是一个显而易见的想法 而且并不难做到 但文件系统上的 po 文件仍在使用 为什
  • 让 React 在表单输入字段下显示单独的错误消息

    我正在提交一个返回一系列错误的表单 但我无法弄清楚如何让每个单独的错误出现在正确的输入字段下 现在 所有错误都会打印在每个输入字段下 我在用着react bootstrap 任何帮助 将不胜感激 getValidationState var