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

时间:2012-08-07 09:43:28

标签: javascript jquery ajax 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()));
...

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

2 个答案:

答案 0 :(得分: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);

另请注意,.attr() function只能用于获取和设置DOM元素的属性。例如,您可以使用它来获取或设置id的{​​{1}}或<div>元素的href。大多数jQuery插件都将其配置保存在JavaScript变量中。如果他们确实将配置附加到DOM,则使用.data()

答案 1 :(得分: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});

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