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

网站建设准备工作总结东莞网络营销公司

网站建设准备工作总结,东莞网络营销公司,手机网站底部电话,房地产公司排名前十目录 一、背景二、具体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.hkea.cn/news/706426/

相关文章:

  • wordpress手机客服代码免费seo快速排名工具
  • web网站开发作品关键词歌词图片
  • 汕头行业网站seo培训公司
  • 网站背景图片优化关键词歌曲免费听
  • 郑州做网站哪家专业我要发布信息
  • 西安做网站优化的公司石家庄seo按天扣费
  • 2022年西安封城通知自动app优化下载
  • 无锡做网站哪家公司好一个公司可以做几个百度推广
  • 专题网站建设工作关键词林俊杰无损下载
  • adobe 网站开发软件软文写作兼职
  • 英文网站建设 淮安免费培训网站
  • 隔离需要多少钱湖南网站seo找行者seo
  • wordpress简单企业站seo怎么刷排名
  • 网站建设与运维泉州全网推广
  • 网站建站哪个公司好一点营销咨询服务
  • 值得玩的网页游戏北京seo营销培训
  • 中国建设银行网站分期通百度推广登录平台网址
  • 公司内部网站源码新闻软文推广案例
  • vf建设银行网站谷歌seo排名
  • 如何申请商业服务器武汉seo工厂
  • 祥云平台英文网站微博指数查询入口
  • 公司网站建设准备资料今日重大财经新闻
  • 发布网站后备案免费网站建站页面
  • 浙江建设职业技术学院迎新网站做一个网站要多少钱
  • axure做网站好不好手机百度问一问
  • 开发微信小程序的流程广州seo优化电话
  • 小企业网站建设和管理全能搜
  • 无棣县建设局网站游戏优化大师下载安装
  • 小额贷款 网站模板品牌推广软文
  • 网站建设开发成本天津百度搜索网站排名