我遇到了下一个问题: 我正在使用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);
工作正常。
那我该怎么做才能解决它?
答案 0 :(得分:5)
创建微调器时会设置min
和max
值。要动态更改它们,请使用:
// 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在单击输入右侧的按钮时会出现一些强制最小值/最大值的问题。该值可以超过最小值/最大值,但是一旦用户模糊了字段就会验证。 使用键盘向上/向下箭头时,验证工作正常,因此插件作者似乎还有改进的余地。