无法使jQuery Spinner为空,默认值大于0

时间:2012-06-20 20:41:08

标签: jquery jquery-ui spinner

我正在使用Brant Burnett的jQuery UI spinner 1.2。我希望我的微调器的最小值为1,最大值为10.但是,我希望微调器默认为空白,然后在用户点击时转到1,如果它们击中则转到10。否则,该值应被视为null。

这是一个问题:如果我将“min”值设置为0,我会得到我想要的行为。微调器开始空白。 Up将它带到1然后向下将它带到10.但是,如果我将min值从0更改为1,则微调器始终默认为1.即使我尝试在微调器中选择值并清除它,它也会强制更改在控件上失去焦点后,值返回1。

有没有人有理由这样做?以后的版本会纠正这个问题吗?或者我应该修改JS文件?谢谢!

1 个答案:

答案 0 :(得分:2)

我在jquery.ui.spinner文件中更改了第546行。添加了一个条件,以确保在返回“min”选项之前该值不为null。这让我得到了我正在寻找的默认“空白”行为。

(归功于Brant Burnett,这个插件的原作者:btburnett.com

_validate: function(value) {
    var options = this.options,
        min = options.min,
        max = options.max;

    if ((value == null) && !options.allowNull)
        value = this.curvalue != null ? this.curvalue : min || max || 0; // must confirm not null in case just initializing and had blank value

    if ((max != null) && (value > max))
        return max;
    else if ((min != null) && (value < min) && (value != null))
        return min;
    else
        return value;
},