当前位置: 首页 > news >正文

天津大型网站设计公司免费发布广告信息网

天津大型网站设计公司,免费发布广告信息网,ui设计公司排行榜,独立设计师平台目录 一、背景二、具体1. 模式一:点击确认进行校验提示2. 模式二:确认按钮依赖于表单内容实现说明 一、背景 基于react、antd form分别实现如下两种模式: 1、一个 Modal,点击确认进行校验提示2、一个 Modal,确认按钮…

目录

  • 一、背景
  • 二、具体
    • 1. 模式一:点击确认进行校验提示
    • 2. 模式二:确认按钮依赖于表单内容
    • 实现说明

一、背景

基于react、antd form分别实现如下两种模式:

  • 1、一个 Modal,点击确认进行校验提示
  • 2、一个 Modal,确认按钮依赖于表单内容,必填项都有值才可点击

二、具体

以下是基于 React 和 Ant Design 的两种模式实现:

1. 模式一:点击确认进行校验提示

import React, { useState } from "react";
import { Modal, Form, Input, Button, message } from "antd";const DialogWithValidation = () => {const [visible, setVisible] = useState(false);const [form] = Form.useForm();const handleOk = () => {form.validateFields().then(() => {message.success("校验通过,提交成功!");setVisible(false);form.resetFields();}).catch((errorInfo) => {message.error("校验未通过,请检查输入!");});};return (<><Button type="primary" onClick={() => setVisible(true)}>打开对话框</Button><Modaltitle="模式一:校验提示"visible={visible}onCancel={() => setVisible(false)}onOk={handleOk}okText="确认"cancelText="取消"><Form form={form} layout="vertical"><Form.Itemlabel="姓名"name="name"rules={[{ required: true, message: "请输入姓名!" }]}><Input placeholder="请输入姓名" /></Form.Item><Form.Itemlabel="邮箱"name="email"rules={[{ required: true, message: "请输入邮箱!" },{ type: "email", message: "请输入有效的邮箱地址!" },]}><Input placeholder="请输入邮箱" /></Form.Item></Form></Modal></>);
};export default DialogWithValidation;

2. 模式二:确认按钮依赖于表单内容

可以参考 Antd form - 仅校验 例子。主要是利用 validateFieldsvalidateOnly 动态调整提交按钮的 disabled 状态:

const SubmitButton: React.FC<React.PropsWithChildren<SubmitButtonProps>> = ({ form, children }) => {const [submittable, setSubmittable] = React.useState<boolean>(false);// Watch all valuesconst values = Form.useWatch([], form);React.useEffect(() => {form.validateFields({ validateOnly: true }).then(() => setSubmittable(true)).catch(() => setSubmittable(false));}, [form, values]);return (<Button type="primary" htmlType="submit" disabled={!submittable}>{children}</Button>);
};

也可以监听 onFieldsChange

import React, { useState } from "react";
import { Modal, Form, Input, Button } from "antd";const DialogWithDisableButton = () => {const [visible, setVisible] = useState(false);const [isFormValid, setIsFormValid] = useState(false);const [form] = Form.useForm();const handleFieldsChange = () => {form.validateFields().then(() => {setIsFormValid(true);}).catch(() => {setIsFormValid(false);});};const handleOk = () => {Modal.success({title: "提交成功",content: "所有必填项都已填写!",});setVisible(false);form.resetFields();setIsFormValid(false);};return (<><Button type="primary" onClick={() => setVisible(true)}>打开对话框</Button><Modaltitle="模式二:按钮依赖表单"visible={visible}onCancel={() => setVisible(false)}onOk={handleOk}okButtonProps={{ disabled: !isFormValid }}okText="确认"cancelText="取消"><Formform={form}layout="vertical"onFieldsChange={handleFieldsChange}><Form.Itemlabel="姓名"name="name"rules={[{ required: true, message: "请输入姓名!" }]}><Input placeholder="请输入姓名" /></Form.Item><Form.Itemlabel="邮箱"name="email"rules={[{ required: true, message: "请输入邮箱!" },{ type: "email", message: "请输入有效的邮箱地址!" },]}><Input placeholder="请输入邮箱" /></Form.Item></Form></Modal></>);
};export default DialogWithDisableButton;

实现说明

  1. 模式一

    • 点击“确认”后会触发校验逻辑。
    • 校验通过后显示成功提示,否则提示错误信息。
  2. 模式二

    • 使用 onFieldsChange 方法监听表单变化。
    • 如果所有必填项都有值且校验通过,启用“确认”按钮;否则按钮保持禁用状态。
http://www.khdw.cn/news/41919.html

相关文章:

  • 新疆品牌网站建设优化设计数学
  • 网站流程图设计工具广州网站seo地址
  • wordpress怎么修改关键字免费seo软件
  • 曹县网站开发北京百度推广优化
  • 免费的行情软件网站不下载长春做网站推荐选吉网传媒好
  • 网站图片相册代码北京网站推广营销服务电话
  • 谷歌网站英文网站搭建需要多少钱?
  • 响应式网站案例贵阳seo网站推广
  • mip织梦手机网站模板什么网站都能进的浏览器
  • 专业的上海网站建设公司如何制作一个网址
  • 如何不花钱开发网站爱链接外链购买
  • 开发公司五证电脑清理优化大师
  • 网页设计的网站推荐如何引流客源最快的方法
  • 沈阳市建设工程质量监督局网站北京疫情最新消息
  • php网站怎么做伪静态百度云盘网页版
  • 长沙网站建设优化网络营销推广8种方法
  • 建设政府网站的社会背景石家庄seo培训
  • 长春专业网站建设球队世界排名榜
  • 贵阳手机网站制作谷歌ads
  • 增城头条新闻网站为什么要做seo
  • 山东和城乡建设厅网站宁波品牌网站推广优化
  • 网站建设服务器的选择方式包括哪些软文代写服务
  • 小型网站开发费用宁波seo外包服务商
  • 个人备案的域名拿来做别的网站seo服务优化
  • 在华图做网站编辑网络关键词
  • 做百度推广送网站吗品牌推广的渠道有哪些
  • 做3dmax网站今日头条重大消息
  • 黄浦专业做网站优化师助理
  • 做网站的系统设计企业网站推广方案设计毕业设计
  • asp 做网站搜索引擎哪个好