sacred-roseS
Refine15mo ago
6 replies
sacred-rose

How to use validator to validate Form.List on Antd

const BankAccountSubForm = () => {
  return <Form.List
    name="bank_account"
  >
    {(fields, { add, remove }) => (
      <div style={{ display: 'flex', rowGap: 16, flexDirection: 'column' }}>
        {fields.map((field) => (
          <Card
            size="small"
            title={`Bank Account ${field.name + 1}`}
            key={field.key}
            extra={
              <CloseOutlined
                onClick={() => {
                  remove(field.name);
                }}
              />
            }
          >
            <Form.Item
              label="Bank Name"
              name={[field.name, "bank_name"]}
              rules={[
                {
                  required: true,
                  message: "Please Choose Bank",
                },
              ]}
            >
              <Select
                showSearch
                placeholder="Select a bank"
                optionFilterProp="label"
                options={banksInIndonesia.map((bank) => ({
                  value: bank,
                  label: bank,
                }))}
              />
            </Form.Item>
            <Form.Item
              label="Bank Number"
              name={[field.name, "bank_number"]}
              rules={[
                {
                  required: true,
                  message: "Mohon masukkan nomor rekening",
                },
                {
                  pattern: /^[0-9]*$/,
                  message: "Nomor rekening hanya boleh berisi angka",
                }
              ]}
            >
              <Input placeholder="1234567" />
            </Form.Item>
          </Card>
        ))}

        <Button type="dashed" onClick={() => add()} block>
          + Add Bank Account
        </Button>
      </div>
    )}
  </Form.List>
}


This is my form, how to make sure this form is filled with at least 1 data
Was this page helpful?