【问题标题】:Disable link on ant design form submit禁用蚂蚁设计表单提交上的链接
【发布时间】:2020-04-18 12:49:39
【问题描述】:

在尝试为我的电子商务网站创建结帐页面时,我遇到了这个问题。

使用蚂蚁设计的表单组件,如果没有填写所有必需的表单,如何禁用链接(继续交付)?如果电话号码字段未填写,则应禁用链接。

<Form.Item
  name={inputField.phoneNo}
  rules={[
    { required: true, message: "Please input your Phone Number!" },
  ]}
>
  <Input placeholder="Phone Number" />
</Form.Item>

<div>
  <Link to="/Cart">{"<"} return to cart</Link>
  <Form.Item>
    <Link
      to="/Delivery"
      style={{ float: "right" }}
    >
      <Button htmlType="submit">
        Continue to Delivery
      </Button>
    </Link>
  </Form.Item>
</div>

【问题讨论】:

    标签: javascript reactjs typescript antd


    【解决方案1】:

    根据 Ant 设计文档,您可以禁用按钮,如下所示

    const [form] = Form.useForm();
    const [, forceUpdate] = useState();
    
      useEffect(() => {
    forceUpdate({});
       }, []);
    
    <Form.Item shouldUpdate={true}>
    {() => (
    <Button
     type="primary"
     htmlType="submit"
     disabled={!form.isFieldsTouched(false) ||
     form.getFieldsError().filter(({ errors }) => errors.length).length}>
     Log in</Button>)}
     </Form.Item>
    

    【讨论】:

      【解决方案2】:

      您可以为它编写自定义逻辑,例如:

            <Button             
                  disabled={
                    !form.isFieldsTouched(true) ||
                    form.getFieldsError().filter(({ errors }) => errors.length).length
                  } 
                  htmlType="submit"
            >
              Continue to Delivery
            </Button>
      

      【讨论】:

      • 是的,我已经研究过一些类似的东西,但我似乎无法正确理解。你从哪里得到表格?如果我尝试粘贴上面的“表单”,则无法识别..
      • 当你执行 Form.create 时,你会在 props 中得到 form
      • @Jonas 当您使用 Antd v4 时,只需从 antd 导入 Form 并在组件顶部使用 dis 代码行(钩子)。 const [form] = Form.useForm();
      • @Hemanthvrm 感谢您的回复。这使我能够使用上述解决方案,但是它不能解决问题,如果在呈现站点时输入字段中没有值(总是如此),它只会永久禁用按钮。也许我之前还不够清楚,但我需要一个按钮,如果输入有效则提交表单,然后将用户重定向到下一页。或者它应该只是向用户调用他缺少某些字段的错误消息。
      • 所以无论按钮点击如何,如果字段为空,您希望在用户进入页面时直接显示错误消息?..您可以做到这一点,但这不是理想的行为,而且看起来很奇怪.. . 表单有 2 种最佳方式 ..1) 在用户填写请求字段之前禁用按钮,在填写表单时启用 ...2) 默认启用按钮,如果用户单击按钮提交,则仅在字段上显示错误,如果他填写表格,然后错误将被清除,按钮将进入下一个屏幕
      猜你喜欢
      • 2020-05-11
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多