当前位置: 首页 > 知识库问答 >
问题:

如何使用antd掩码输入库获取antd表单字段的原始值?

华乐逸
2023-03-14

我在我的蚂蚁设计应用程序上使用antd掩码输入库,将掩码放入我的antd表单上的字段中。这个antd掩码输入库是使用这个输入掩码核心库构建的。

下面是一个关于codesandbox的工作示例。木卫一。在这两个字段中填写任意值,然后打开console。单击Confirm后,这些字段的值将记录在控制台输出中。

如您所见,phoneconst具有带掩码的字段的值,但我需要不带掩码的字段。inputmask内核上有一个getRawValue()方法,但我不知道如何将它与antd mask输入库提供的MaskedInput组件一起使用。

import React, { Component } from "react";
import { Form, Icon, Input, Button } from "antd";
import { MaskedInput } from "antd-mask-input";

const INPUT_ICON_COLOR = "rgba(0,0,0,.25)";

const FormFields = Object.freeze({
  EMAIL: "email",
  PHONE: "phone"
});

class Signup extends Component {
  handleSubmit = e => {
    const { form } = this.props;
    const { validateFields } = form;

    e.preventDefault();

    validateFields((err, values) => {
      if (!err) {
        const a = form.getFieldValue(FormFields.PHONE);
        debugger;

        const phone = values[FormFields.PHONE];
        const email = values[FormFields.EMAIL];

        console.log("phone", phone);
        console.log("email", email);
      }
    });
  };

  render() {
    const { form } = this.props;
    const { getFieldDecorator } = form;

    return (
      <div
        style={{
          display: "flex",
          alignItems: "center",
          width: "100%",
          flexDirection: "column"
        }}
      >
        <Form onSubmit={this.handleSubmit} className={"login-form"}>
          <Form.Item>
            {getFieldDecorator(FormFields.PHONE, {
              rules: [
                {
                  required: true,
                  message: "Please type value"
                }
              ]
            })(
              <MaskedInput
                mask="(11) 1 1111-1111"
                placeholderChar={" "}
                prefix={
                  <Icon type="phone" style={{ color: INPUT_ICON_COLOR }} />
                }
                placeholder="Phone"
              />
            )}
          </Form.Item>
          <Form.Item>
            {getFieldDecorator(FormFields.EMAIL, {
              rules: [{ required: true, message: "Please type value" }]
            })(
              <Input
                type={"email"}
                prefix={
                  <Icon type="mail" style={{ color: INPUT_ICON_COLOR }} />
                }
                placeholder="Email"
              />
            )}
          </Form.Item>
          <Form.Item>
            <Button
              type="primary"
              htmlType="submit"
              className={"login-form-button"}
            >
              Confirm
            </Button>
          </Form.Item>
        </Form>
      </div>
    );
  }
}

export default Form.create({ name: "signup" })(Signup);

共有1个答案

谢昂雄
2023-03-14

查看源代码:

export default class MaskedInput extends Component<MaskedInputProps> {
  mask: InputMask;
  input!: HTMLInputElement;
....
}

InputMask引用位于掩码值之下,因此您可以获得这样的函数

this.inputMaskRef.current.mask.getRawValue()

例子:

class Signup extends Component {
  inputMaskRef = React.createRef();

  handleSubmit = e => {
    ...
    validateFields((err, values) => {
      if (!err) {
        ...
        console.log(this.inputMaskRef.current.mask.getRawValue());
      }
    });
  };

  render() {
    ...
    return (
      <Form ...>
        <Form.Item>
          {getFieldDecorator(FormFields.PHONE, {...})(
            <MaskedInput
              ref={this.inputMaskRef}
              mask="(11) 1 1111-1111"
              ...
            />,
          )}
        </Form.Item>
        ...
      </Form>
    );
  }
}
 类似资料:
  • 问题内容: 我有一个包含许多输入字段的表单。 当我使用jQuery捕获Submit form事件时,是否可以在关联数组中获取该表单的所有输入字段? 问题答案: $(‘#myForm’).submit(function() { // get all the inputs into an array. var $inputs = $(‘#myForm :input’); 这是您可以使用的另一种方法 请

  • 我的应用程序中有一个客户联系表单,当然需要电话输入。我正在运行Rails 3.2.13并使用Zurb Foundation。我希望找到一个以“(999) 999-9999”形式提供输入掩码的gem,我可以调用它。我的数据确实是本地的,所以我只需要美国格式的数字。 我能够在现场执行验证,但希望将用户限制在输入掩码的更严格范围内。这就是我目前所拥有的。 这方面有什么好东西吗,或者你喜欢的jQuery插

  • 问题内容: 我有以下React组件: 控制台给了我-任何想法这段代码有什么问题吗? 问题答案: 您应该在类MyComponent下使用构造函数扩展React.Component 然后您将获得标题的结果

  • 问题内容: 我有一个输入字段,如下所示: 我想获取输入字段的值并将其分配给会话。如何使用PHP或jQuery做到这一点? 问题答案: 使用PHP 或超全局变量通过HTML标签的名称来检索输入标签的值。 例如,更改表单中的方法,然后通过输入名称回显该值: 使用方法: 要显示值: 使用方法: 要显示值:

  • 我有一个输入字段如下: 我想获取输入字段值,并将其分配给会话。如何使用PHP或jQuery实现这一点?

  • 我正在尝试根据用户输入字段获取api数据。如何获取这些数据的值? 我的apiendpoint如下“http://localhost:8000/api/p_list?search=" . 每当用户输入值时,endpoint如下“http://localhost:8000/api/p_list?search=01这里输入的字段值为“01”。我想得到结果的值。 我可能是新来的反应。我尝试了下面这样的东西

  • 问题内容: 我正在使用JavaScript进行搜索。我会使用一种表格,但是它弄乱了我页面上的其他内容。我有此输入文本字段: 这是我的JavaScript代码: 如何从文本字段获取值到JavaScript? 问题答案: 有多种方法可直接获取输入文本框值(无需将输入元素包装在表单元素内): 方法1: 得到所需盒子的价值 例如, 注意: 方法2、3、4和6返回元素的集合,因此请使用[whole_numb

  • 我正在用JavaScript进行搜索。我会使用一个表单,但它会把我页面上的其他东西弄乱。我有这个输入文本字段: 这是我的JavaScript代码: 如何将文本字段中的值获取到JavaScript中?