如何设置jQuery微调器的最大值和最小值?

Hel*_*gus 5 javascript ajax jquery spinner

我遇到了下一个问题:我正在使用jQuery + ajax,我希望在从服务器获取数据后设置我的微调器的最大值和最小值.但实际情况是,当我用firebug检查元素时,它说,max和min值已设置,实际上它们不是,因此没有max和min值.这是一些代码:

...
<input type="number" id ="spinId" name="someName" step="0.5" />
...
$("#spinId").attr('min', 0.0);
$("#spinId").attr('max', parseFloat($('.someClass').text()));
...
Run Code Online (Sandbox Code Playgroud)

这个.someClass是通过ajax形成的.我也注意到值设置正确,即$('#spinId').attr('value',ValueFromServer);工作正常.那我该怎么做才能修好呢?

PPv*_*PvG 5

minmax创建微调当值设置.要动态更改它们,请使用:

// given a 'data' object from AJAX with keys 'min' and 'max':
$('#spinId').spinner('option', 'min', data.min);
$('#spinId').spinner('option', 'max', data.max);
Run Code Online (Sandbox Code Playgroud)

还要记住,该.attr()函数只能用于获取和设置DOM元素的属性.例如,你可以用它来获取或设置id的一个<div>href一个的<a>元素.大多数jQuery插件都将其配置保存在JavaScript变量中.如果他们确实将配置附加到DOM,他们会使用.data().


WTK*_*WTK 5

您还可以直接在不同的微调器上设置选项,而不会影响默认值.这是一个工作示例:http://jsfiddle.net/7xj7K/4/

// give two different inputs different options without changing jquery spinner defaults
$("#spinId").spinner({min: 0, max: 10});
$("#spinId_two").spinner({min: -3, max: 53});
Run Code Online (Sandbox Code Playgroud)

正如您在jsfiddle上看到的那样,jQuery spinner在单击输入右侧的按钮时会出现一些强制最小/最大值的问题.该值可以超过最小值/最大值,但是一旦用户模糊了字段就会验证.使用键盘向上/向下箭头时,验证工作正常,因此插件的作者似乎还有改进的余地.