如何设置 jQuery spinner 的最大值和最小值?

6

我遇到了下一个问题: 我正在使用jQuery + ajax,希望在从服务器获取数据后设置我的旋转器的最大值和最小值。但实际情况是,当我用firebug检查元素时,它显示最大值和最小值已经设置,但实际上它们并没有被设置,所以没有最大值和最小值。 以下是一些代码:

...
<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);有效果。那么我应该怎么做才能解决它呢?


它似乎在Chrome中工作。Firefox尚不支持数字输入类型,因此(根据问题分配的标签判断),您正在使用jspinner来处理它? - WTK
我正在使用jQuery spinner: http://btburnett.com/spinner/example/example.html - Helgus
你有检查过 $('.someClass').text() 的值吗?是你预期的值吗?可以通过 console.log 或 alert 来检查。 - Senthil Kumar
2个回答

6

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()函数只能用于获取和设置DOM元素的属性。例如,您可以使用它来获取或设置<div>id<a>元素的href。大多数jQuery插件将其配置保存在JavaScript变量中。如果它们将配置附加到DOM,则使用.data()

6

您还可以直接在不影响默认设置的情况下,对不同的微调控件进行设置。以下是一个有效的示例: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数字微调器存在一些强制执行最小/最大值的问题。此时,该值可能超过最小/最大值,但用户一旦从字段中离开则会进行验证。 当使用键盘上/下箭头时,验证工作得非常好,因此似乎这个插件的作者有改进的空间。

1
这是一种设置多个选项的优越方法。 - Joe Johnston

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接