antd Select限制个数 5个

const selectTypeRule = ({ getFieldValue }) => ({
  validator( _,value ){
    if( value ){
      
      if(value.length>5){
        return Promise.reject(new Error('使用场景最多选5个'));
      }
      
    }else{

      return Promise.reject(new Error('请选择使用场景'))
      
    }
  }
})


function UtilXXX() {


return (
<Form.Item
    name="XXX"
    rules={[ selectTypeRule ]}
                  >
    <Select
                        allowClear
                        mode="multiple"
                        placeholder="请选择"
                        style={{ width: editWidth?580:480}}
                        optionLabelProp="children"
                        rules={[{ required: true, message: '请选择' }]}
                        filterOption={(input, option) =>
                          option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
                        }
                    >
                        <Option key="3" value="3" label="333">333</Option>
                        <Option key="4" value="4" label="444">444</Option>
                        <Option key="5" value="5" label="555">555</Option>
                        <Option key="6" value="6" label="666">666</Option>
                        <Option key="7" value="7" label="777">777</Option>
                        <Option key="8" value="8" label="888">888</Option>
                        <Option key="9" value="9" label="999">999</Option>
                        
                    </Select>
</Form.Item>
  )
}

export default UtilXXX

使用 validator 校验并提示是最好的选择了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果你想限制antd Select组件选择的个数,可以使用`maxTagCount`属性。这个属性可以设置展示的tag数量,当选中项超过这个数量时,会以`${selectedCount}+`的形式表示。同时,你还可以使用`maxTagPlaceholder`属性来自定义超出数量时的文本提示。 另外,如果你想在选择超过限制时阻止用户进行选择,可以通过监听`onChange`事件,在事件处理函数中判断当前选中项个数是否超过限制,如果超过,可以将选中项回滚到上一状态或者阻止选中操作。 以下是一个使用`maxTagCount`属性限制选择数量的例子: ```javascript import React, { useState } from 'react'; import { Select } from 'antd'; const { Option } = Select; const options = [ { value: 'apple', label: '苹果' }, { value: 'banana', label: '香蕉' }, { value: 'orange', label: '橙子' }, { value: 'pear', label: '梨子' }, { value: 'watermelon', label: '西瓜' }, { value: 'grape', label: '葡萄' }, { value: 'pineapple', label: '菠萝' }, ]; function App() { const [value, setValue] = useState([]); const handleChange = newValue => { if (newValue.length <= 3) { setValue(newValue); } }; return ( <Select mode="multiple" value={value} onChange={handleChange} maxTagCount={3} placeholder="请选择水果" > {options.map(option => ( <Option key={option.value} value={option.value}> {option.label} </Option> ))} </Select> ); } ``` 在上面的例子中,我们将`maxTagCount`属性设置为3,限制用户最多只能选择3个选项。同时,我们在`handleChange`事件处理函数中判断当前选中项个数是否超过3个,如果超过,就不更新`value`状态,从而阻止用户选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值