6

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

...
<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);工作正常。那么我该怎么做才能解决它?

4

2 回答 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 元素的属性。例如,您可以使用它来获取或设置元素的ida<div>或 the 。大多数 jQuery 插件将其配置保存在 JavaScript 变量中。如果他们确实将配置附加到 DOM,他们使用.href<a>.data()

于 2012-08-07T10:21:33.533 回答
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 微调器在单击输入右侧的按钮时强制执行最小/最大值存在一些问题。该值可以超过最小/最大值,但一旦用户从该字段模糊就会验证。使用键盘向上/向下箭头时验证工作得很好,所以插件的作者似乎还有改进的空间。

于 2012-08-07T10:29:12.340 回答