2012-08-07 167 views
4

我遇到了下一个问题: 我正在使用jQuery + ajax,我希望在从服务器获取数据之后设置微调器的最大和最小值。但真实情况是,当我用萤火虫检查元素时,它说,最大值和最小值都被设置,实际上它们不是,所以没有最大值和最小值。 这里是一些代码:如何设置jQuery微调器的最大值和最小值?

... 
<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

它似乎在Chrome中工作。火狐不支持输入类型数字,所以(通过分配问题的标签来判断)你使用jspinner来处理这些数字? – WTK 2012-08-07 10:04:17

+0

我使用jQuery微调:http://btburnett.com/spinner/example/example.html – Helgus 2012-08-07 10:11:35

+0

你检查(console.log或alert)$('。someClass')。text()的值吗?它是否提供了您期望的价值? – 2012-08-07 10:20:23

回答

4

创建微调控制器时,将设置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元素的属性。例如,您可以使用它来获取或设置<div>id<a>元素的href。大多数jQuery插件都在JavaScript变量中保留它们的配置。如果他们将配置附加到DOM,他们使用.data()

+0

感谢您的解决方案! – Helgus 2012-08-07 10:36:43

4

您也可以在不影响默认值的情况下直接在不同的旋钮上设置选项。这里的工作示例: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的微调与执行最小值/最大值,同时点击按钮,输入正确的一些问题。该值可以超过最小值/最大值,但是一旦用户模糊了该字段,该值就会被验证。 当使用键盘上/下箭头时,验证工作得很好,所以看起来好像插件作者有改进的余地。

+0

这是设置多个选项的最佳方法。 – 2014-05-12 21:36:47

相关问题