ZBLOG

//校验搜索条件一个必填 const trimLeft = function trimLeft(s) { return s.replace(/(^\s*)/g, ''); }; const isEmpty = function isEmpty(value) { return value === undefined || value === null || trimLeft(value) === ''; }; const checkRequired = (data) => {

根据你提供的代码,最后的验证通过需要满足两个条件:必填字段不为空,并且没有其他错误信息。

首先,在handleSubmit函数中,你已经使用validator对表单值进行了验证,并将错误信息保存在error变量中。接下来,你可以添加一个额外的判断逻辑,检查是否存在必填字段的错误信息(requieredError),如果存在,则将它赋值给error._error属性。

修改handleSubmit函数如下:

  1. const handleSubmit = (values) => {
  2. console.log('1111111');
  3. const error = validator(values);
  4. const requieredError = checkRequired()(null, values); // 注意这里要传入values而不是value
  5. if (requieredError) {
  6. error._error = requieredError;
  7. }
  8. if (!error._error) {
  9. console.log('验证通过');
  10. // 执行提交操作或其他操作
  11. }
  12. }

在InputGroup组件中,你使用{…minAmount}和{…maxAmount}来将相关属性绑定到input元素上。根据代码推断,minAmount和maxAmount应该是Formik库中Field组件所定义的field对象。

为了确保数值类型一致性,你可以在minAmount和maxAmount.onChange回调函数中使用Number()方法将输入转换为数字类型。修改相关代码如下:

  1. <InputGroup field={minAmount} label="最小授信金额" sm={3} lsm={3} size="sm">
  2. <div className="col-sm-9">
  3. <input type="text" className="form-control" {...minAmount} onBlur={e => minAmount.onChange(Number(e.target.value))} />
  4. </div>
  5. </InputGroup>
  6. <InputGroup field={maxAmount} label="最大授信金额" sm={3} lsm={3} size="sm">
  7. <div className="col-sm-9">
  8. <input type="text" className="form-control" {...maxAmount} onBlur={e => maxAmount.onChange(Number(e.target.value))} />
  9. </div>
  10. </InputGroup>

这样做可以确保输入的值都是数值类型,而不是字符串类型。然后,在validator中的checkoutLegalPerson函数中,你可以使用字段名作为参数传递,并在返回错误信息时将字段名动态添加到错误消息中。

  1. const checkoutLegalPerson = (field) => {
  2. return (value) => {
  3. if (!value) {
  4. return `${field}不能为空`;
  5. }
  6. };
  7. };

通过上述修改,你应该能够在满足必填条件并且没有其他错误信息时让验证通过。如果有任何其他问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10139

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?