6

我试图阻止用户使用键盘通过 jquery ui 微调器输入值。我有几个微调器,并希望它只允许用户使用向上和向下箭头来增加或减少值。

我试过环顾 stackoverflow 和谷歌,但似乎找不到有用的东西。

所以我有例如这样的输入:

<input type="text" class="spinner" value="10"/>

并像这样初始化微调器:

$(".spinner").spinner();

然后尝试像这样禁用按键:

$(".spinner").unbind("keypress");

它仍然允许键盘输入。有谁知道这样做吗?这是我一直在测试的 JSBin 文件:http: //jsbin.com/ujajab/1/edit

4

3 回答 3

14

简单的!代替

$(".spinner").unbind("keypress");

$(".spinner").bind("keydown", function (event) {
    event.preventDefault();
});

取消绑定只会取消绑定已绑定的功能。文本字段的默认行为不会改变;所以我们必须防止这种情况发生!如果您根本不希望它集中:

$(".spinner").focus(function () {
    $(this).blur();
});

快乐编码!

于 2013-07-29T11:17:38.550 回答
9

您可以像这样简单地将 readonly 属性添加到您的标签:

<input type="text" class="spinner" value="10" readonly/>

这对我有用!干杯

于 2014-05-21T11:48:05.903 回答
0

可能希望避免解除绑定并更喜欢使用现有 API 的 onchange 回调:

jquery UI Spinner 更改事件

如果超出您的界限,请丢弃更改。

于 2014-01-21T13:19:36.850 回答