你好!我的朋友 2025-03-18 11:15 采纳率: 66.7%
浏览 18

多个表单,不同组件,分布在不同的tab页中,如何点页面上的一个按钮一起检验必填

多个表单,不同组件,分布在不同的tab页中,如何点页面上的一个按钮一起检验必填

react+TS+zustand+antd

  • 写回答

5条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-18 11:15
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    在React中,可以通过使用useState和useEffect来监听表单数据的变化,并在点击按钮时一起检验必填项。可以将每个表单组件对应的必填项状态保存在一个useState中,并利用useEffect监听对应表单组件数据的变化。 下面是一个示例代码:
    import React, { useState, useEffect } from 'react';
    import { Button, Tabs } from 'antd';
    const { TabPane } = Tabs;
    const App = () => {
      const [form1Data, setForm1Data] = useState({});
      const [form2Data, setForm2Data] = useState({});
      const [validForm1, setValidForm1] = useState(false);
      const [validForm2, setValidForm2] = useState(false);
      useEffect(() => {
        // 在这里编写表单1数据的验证逻辑
        const isValidForm1 = Object.values(form1Data).every(item => item !== '');
        setValidForm1(isValidForm1);
      }, [form1Data]);
      useEffect(() => {
        // 在这里编写表单2数据的验证逻辑
        const isValidForm2 = Object.values(form2Data).every(item => item !== '');
        setValidForm2(isValidForm2);
      }, [form2Data]);
      const handleButtonClick = () => {
        // 点击按钮时一起检验必填项
        if (validForm1 && validForm2) {
          // 所有表单数据都符合验证条件
          console.log('所有表单数据通过验证');
        } else {
          console.log('有表单数据未通过验证');
        }
      };
      return (
        <div>
          <Tabs defaultActiveKey="1">
            <TabPane tab="Tab 1" key="1">
              {/* 表单1组件 */}
              <input type="text" placeholder="请输入内容" onChange={e => setForm1Data(e.target.value)} />
            </TabPane>
            <TabPane tab="Tab 2" key="2">
              {/* 表单2组件 */}
              <input type="text" placeholder="请输入内容" onChange={e => setForm2Data(e.target.value)} />
            </TabPane>
          </Tabs>
          <Button type="primary" onClick={handleButtonClick}>检验必填项</Button>
        </div>
      );
    };
    export default App;
    

    在上面的代码中,我们通过useState来保存各个表单字段的数据,然后通过useEffect监听表单数据的变化,根据表单数据的变化来判断是否所有必填项已经填写。最后,点击按钮时调用handleButtonClick方法来一起检验必填项。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月18日