首页 > 解决方案 > jQuery 验证插件具有轻松的“步骤”属性

问题描述

我使用 jquery 验证,并且我有一个设置了 step=10 的“数字”输入框,即使应该允许用户手动设置一个不是 10 的倍数的值(例如 23):

<input name="myNumber" type="number" step=10 min=0>

换句话说,我喜欢 Chrome 和 Firefox 旋转(向上和向下箭头)来步进数字,因为它增加了用户的体验,但我不喜欢 browser/jquery.validate 如果我手动设置一个值而不是多个值会引发错误“步骤”(见下图和这里的小提琴)。

在此处输入图像描述

有没有办法让输入旋转步骤,同时放松输入约束,使其成为“步骤”的倍数?

例如(试试小提琴):

<input name="myNumber" type="number" step=10 min=0>

this.$form.validate({
    rules: {
        "myNumber": {
            required: true
            step: "relax"   // <<== example
         }
    }
});

标签: jqueryjquery-validate

解决方案


jQuery Validate 插件step基于step="10".

如果您不希望验证规则使用 HTML 中的参数,只需设置您自己的。

rules: {
    "myNumber": {
        required: true,
        step: "1"  // <- this will over-ride parameter from HTML attribute
    }
}

所有输入值都有效,但向上/向下箭头将移动 10 的增量

演示: jsfiddle.net/rcx9mztn/


推荐阅读