<input />上的JQuery Validation插件,具有轻松的“ step”属性

时间:2018-10-01 11:00:47

标签: jquery jquery-validate

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

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

换句话说,我喜欢Chrome和Firefox旋转(向上和向下箭头)来逐步增加数字,因为这可以增加用户的体验,但是我不喜欢browser / jquery。如果我手动设置了值不是“步长”的倍数(请参见下图和fiddle here)。

enter image description here

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

例如(尝试fiddle):

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

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

1 个答案:

答案 0 :(得分:2)

jQuery Validate插件基于step的内联HTML属性设置其step="10"规则参数。

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

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

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

演示:jsfiddle.net/rcx9mztn/