JQuery <input> 上的验证插件具有宽松的 "step" 属性

JQuery Validation plugin on a <input> with a relaxed "step" attribute

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

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

换句话说,我喜欢 Chrome 和 Firefox 旋转(向上和向下箭头)来步进数字,因为它增加了用户体验,但我不喜欢 browser/jquery.validate如果我手动设置值 而不是 的 "step" 的倍数(见下图和 fiddle here),则会出现错误。

有没有办法让输入自旋步骤同时放宽输入约束为 "step" 的倍数?

例如(尝试 fiddle):

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

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

jQuery 验证插件正在根据 step="10" 的内联 HTML 属性设置其 step 规则参数。

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

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

所有输入值均有效,但 up/down 箭头将移动 10

演示:jsfiddle.net/rcx9mztn/