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

How to set jQuery spinner max and min values?

本文关键字:最大值 最小值 jQuery 何设置 设置      更新时间:2023-09-26

我面临下一个问题:我使用的是jQuery+ajax,我希望在从服务器获取数据后设置微调器的最大值和最小值。但实际情况是,当我用firebug检查元素时,它说,设置了最大值和最小值,而实际上没有,所以没有最大值和最低值。这是一些代码:

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

而this.someClass是通过ajax形成的。我还注意到该值设置正确,即$('#spinId').attr('value',ValueFromServer);工作正常。那我该怎么办呢?

创建微调器时设置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()

您还可以直接在不同的微调器上设置选项,而不会影响默认值。以下是工作示例: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微调器在单击输入右侧的按钮时强制执行最小/最大值时存在一些问题。该值可以超过最小/最大值,但一旦用户从字段中模糊,就会进行验证。当使用键盘上下箭头时,验证效果很好,所以插件的作者似乎还有改进的空间。