Ant-d问题总结

2022-11-02  本文已影响0人  张_何
const TestCmp = (props)=>{
    const [form] = From.useForm(); // 注意这里返回的是数组
    const [count setCount] = useState('');
    // 如果在提交时校验,需要调用form.validateFields()函数,这个是个
    const onSave = async ()=>{
        try {
          const values = await form.validateFields();
          ....
        } catch () {
        
        }
    }
    const handleKeyDown=(event)=>{
       let reg = /^(0?|-?[]1-9)\d*)$/
       if(!(reg.test(event.key) || event.key === "Backspace")){ // 如果输入字符不是数字或者删除,则阻止
          event.preventDefault();
       }
    }
    const check = (rule,value,callback)=>{
        if (value && value > 100) {
            return Promise.reject("请输入0~100"的整数)
        } else {
            return Promise.resolve();
        }
    }

    const onChange=(value)=>{
        if(isNaN(Number(val))) {
            message.warning("请输入数字")
        }
        setCount(value);
    }
 
    return (
      <Form form = {form}>
          <Form.Item label="解决Form中Input组件type为number时设置maxLength属性无效的问题"
               name="amount"
               getValueFromEvent={(e)=>{
                    if(e.target.value.length > 50) {
                        return e.target.value.slice(0,50);
                    }
                    return e.target.value;
                }}
          >
              <Input style={{width:200}} type="number">
          </Form.Item>
         <Form.Item label="限制输入框只能输入0~9的数字"
               name="count"
               rules={[{validator:check}]}
          >
              <Input value={count}
                  onChange={(e)=>onChange(e.target.value)}
                  onKeyDown={handleKeyDown}
              />
          </Form.Item>
      </Form>
      <Button onClick={save}>保存</Button>
    )
}
上一篇 下一篇

猜你喜欢

热点阅读