jQuery UI Spinner – 能够通过键盘超过“max”

我们遇到了jQuery UI微调器的问题.当我们在微调器上设置最大值时,使用微调器按钮时不可能超过此最大值.但是使用键盘我们可以去任何数字.

http://jsfiddle.net/Uygt2/

我们需要允许用户使用键盘.在jQuery UI中是否有针对此的标准解决方案?

正如你在Rab Nawaz的这个(http://jsfiddle.net/Uygt2/4/)更新的小提琴中看到的那样,模糊总是被调用,这导致我们的逻辑运行两次.

解决方法

编辑:处理负数.感谢 Rzassar指出.

您可以使用oninput事件:{‘keyup paste’用于不支持它的旧浏览器}

Demo jsFiddle

$("input").spinner({
    max: 10,min: -10
}).on('input',function () {
    if ($(this).data('onInputPrevented')) return;
    var val = this.value,$this = $(this),max = $this.spinner('option','max'),min = $this.spinner('option','min');
    // We want only number,no alpha. 
    // We set it to prevIoUs default value.         
    if (!val.match(/^[+-]?[\d]{0,}$/)) val = $(this).data('defaultValue');
    this.value = val > max ? max : val < min ? min : val;
}).on('keydown',function (e) {
    // we set default value for spinner.
    if (!$(this).data('defaultValue')) $(this).data('defaultValue',this.value);
    // To handle backspace
    $(this).data('onInputPrevented',e.which === 8 ? true : false);
});

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...