react 获取表单中输入框的值

通过使用useState钩子来创建一个状态变量,你可以同时获取多个Input框的值。

1获取input框的值:

import React, { useState } from 'react';

function MyComponent() {
  const [forms, setForms] = useState({
    name: '',
    nation: '',
  });

  const handleInputChange = (e) => {
    const { name, value } = e.target;

    setForms((prevForms) => ({
      ...prevForms,
      [name]: value,
    }));
  };

  const handleSubmit = (e) => {
    e.preventDefault();

    console.log('姓名:', forms.name);
    console.log('国家:', forms.nation);

    // 执行其他逻辑
  };

  return (
    <div>
      <form onSubmit={handleSubmit}>
        <input
          type="text"
          name="name"
          value={forms.name}
          onChange={handleInputChange}
        />
        <input
          type="text"
          name="nation"
          value={forms.nation}
          onChange={handleInputChange}
        />
        {/* 添加其他Input框 */}
        <button type="submit">提交</button>
      </form>
    </div>
  );
}

export default MyComponent;

2获取select框的值

import { useState } from 'react';
import { Select } from 'antd';

const { Option } = Select;

const YourComponent = () => {
  const [forms, setForms] = useState({
    name: "",
    nation: ""
  });

  const handleNameChange = (value) => {
    setForms(prevState => ({
      ...prevState,
      name: value
    }));
  };

  const handleNationChange = (value) => {
    setForms(prevState => ({
      ...prevState,
      nation: value
    }));
  };

  return (
    <>
      <Select value={forms.name} onChange={handleNameChange}>
        <Option value="John">John</Option>
        <Option value="Jane">Jane</Option>
        <Option value="Bob">Bob</Option>
      </Select>

      <Select value={forms.nation} onChange={handleNationChange}>
        <Option value="USA">USA</Option>
        <Option value="Canada">Canada</Option>
        <Option value="UK">UK</Option>
      </Select>
    </>
  );
};

在使用React结合Ant Design(antd)库开发表单时,对于输入框的格式验证是一项常见的需求,尤其对于手机号和邮箱这样的字段,客户端的格式验证能够提升用户体验,确保输入的数据符合预期格式。以下是如何使用antd的Form组件和ValidateRule规则来实现手机号和邮箱格式验证的基本方法: 1. 首先,需要安装并引入antd库: ```bash npm install antd ``` ```javascript import { Form, Input, message } from 'antd'; ``` 2. 在组件使用`Form`包裹表单元素,并为需要验证的`Input`组件添加`rules`属性。在`rules`数组定义具体的验证规则,例如手机号和邮箱: ```javascript const Demo = () => { const [form] = Form.useForm(); const phoneRule = { required: true, message: '请输入手机号!', pattern: new RegExp('^1[3-9]\\d{9}$'), // 简单的手机号验证正则表达式 }; const emailRule = { required: true, message: '请输入邮箱!', type: 'email', // 根据antd的内置规则检查邮箱格式 }; const onFinish = (values) => { console.log('Success:', values); }; const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; return ( <Form form={form} onFinish={onFinish} onFinishFailed={onFinishFailed} validateTrigger="onBlur" > <Form.Item name="phone" label="手机号" rules={[phoneRule]} > <Input placeholder="请输入手机号" /> </Form.Item> <Form.Item name="email" label="邮箱" rules={[emailRule]} > <Input placeholder="请输入邮箱" /> </Form.Item> <Form.Item> <button type="submit">提交</button> </Form.Item> </Form> ); }; ``` 在这个例子,`phoneRule`定义了手机号的验证规则,其`pattern`属性使用了正则表达式进行匹配。`emailRule`则使用了antd内置的`type: 'email'`来进行邮箱格式的验证。 需要注意的是,前端验证仅作为初步检查,后端也需要对输入数据进行格式和安全性验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值