ZBLOG

为了确保用户在输入框中只能输入1到99之间的正整数,且不能输入小数,你可以结合HTML属性、表单验证以及自定义事件处理。你已经在Form.Item中使用了Ant Design的表单组件,这里有一个示例来帮助你实现这个需求:

使用 Ant Design 进行输入限制

以下是一个调整后的代码示例,通过组合 Inputtype="number" 和验证规则,实现只允许正整数的输入。

<Form.Item
    validateTrigger="onBlur"
    layout="vertical"
    label="每人每间夜可下单上限:"
    name="peopleRoomLimit"
    rules={[
        { required: true, message: '请输入每人每间夜可下单上限' },
        {
            validator: async (_, value) => {
                if (!value || (value >= 1 && value <= 99 && Number.isInteger(Number(value)))) {
                    return Promise.resolve();
                }
                return Promise.reject(new Error('请输入1~99之间的整数'));
            },
        },
    ]}
    labelCol={{ span: 24 }}
    wrapperCol={{ span: 24 }}
>
    <Input
        className="header-left-input"
        type="number"
        min={1}
        max={99}
        step={1}
        placeholder="请输入1~99之间的整数"
        onKeyPress={(e) => {
            // 防止输入小数点和负号
            if (e.key === '.' || e.key === '-' || !/[0-9]/.test(e.key)) {
                e.preventDefault();
            }
        }}
    />
</Form.Item>

解释代码中的关键部分:

  1. validator 函数:

    • 在验证函数中,检查 value 是否存在,并且确保它在范围 [1, 99] 内,并且是一个整数 (Number.isInteger)。
    • 如果通过验证,则返回 Promise.resolve();否则返回带有错误信息的 Promise.reject()
  2. onKeyPress 事件:

    • 限制用户键盘输入,防止他们输入小数点(.)或负号(-),并只允许数字字符。这样能够提高用户体验,同时减少不必要的错误。
  3. HTML 属性:

    • 使用了 min, max, 和 step=1 属性来设置允许的值范围和步长,尽管前端检查会更有效,但这些属性也提供了一定程度的约束。

这样的设置能更好地保证用户只能输入符合条件的数据,有效避免非整数和无效数据。希望这对你有所帮助!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19674

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?