JQuery spinner在第一次点击时跳过0

时间:2015-01-14 11:37:16

标签: jquery

我在输入字段上使用JQuery微调器。但是当我第一次点击+按钮时,微调器会跳过0并直接进入0.5。

我当然可以通过添加值=" 0"来解决这个问题。输入,但想法是输入开始为空。

这是我的代码:

HTML

<input id="test">

JQuery的

$("#test").spinner({
step: 0.5,
icons: {
    up: "ui-icon-plus",
    down: "ui-icon-minus"
},
spin: function (event, ui) {

    if (ui.value > 20) {
        $(this).spinner("value", 0);
        return false;
    } else if (ui.value < 0) {
        $(this).spinner("value", 20);
        return false;
    }        
    if (ui.value > 3 && ui.value !== 0) {
        $(this).spinner("option", "step", "1");
    } else {
        $(this).spinner("option", "step", "0.5");
    }
}

});

我也试图证明这个问题:http://jsfiddle.net/5cmt2so7/

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不明白为什么你不想为输入设置初始值,但你可以做某事。像那样

$(".test").spinner({
    step: 0.5,
    icons: {
        up: "ui-icon-plus",
        down: "ui-icon-minus"
    },
    count:0,
    spin: function (event, ui) {

        if($(this).spinner("option", "count") < 1 ){
            $(this).spinner("value", 0);
            $(this).spinner("option", "count",$(this).spinner("option", "count") + 1 );
            return false;
        }            


        if (ui.value > 20) {
            $(this).spinner("value", 0);
            return false;
        } else if (ui.value < 0) {
            $(this).spinner("value", 20);
            return false;
        }        
        if (ui.value > 3 && ui.value !== 0) {
            $(this).spinner("option", "step", "1");
        } else {
            $(this).spinner("option", "step", "0.5");
        }
    }
});

fiddle