-1

我正在尝试使用微调器在我的字段中添加一个符号(+),但它每次返回没有符号的数字,我能以某种方式解决这个问题吗?

var spinner = $( "#spinner" ).spinner({
    step: 0.25,
    min:-12, 
    max:8, 
    change: function( event, ui ) {
        var ph = $('#spinner').val();
        if(ph.indexOf('+') == 0) {
          alert($('#spinner').val());
          $('#spinner').val('+'+$('#spinner').val());
       } else {

       }
    },
    spin: function( event, ui ) {

    }

});

或者你可以在这里查看:http: //jsfiddle.net/XseWc/220/

4

2 回答 2

1

这也是为了旋转: JSFIDDLE

var spinner = $("#spinner").spinner({
    step: 0.25,
    min: -12,
    max: 8,
    change: function (event, ui) {        
    },
    spin: function (event, ui) {
        var keepPlus =  spinner.val().indexOf('+') === 0?true:false;
        setTimeout(function () {
            var ph = spinner.val(); 
            if (ph > 0 && keepPlus)spinner.val('+' + spinner.val());
        }, 0);
    }

});
于 2013-04-12T15:20:08.283 回答
1

indexOf 返回一个索引,或 -1 表示未找到。您需要与 -1 而不是 0 进行比较

if(ph.indexOf('+') == -1)

jsFiddle Demo

但是,我建议以完全不同的方式解决这个问题。相反,重写 _format 方法。

$.ui.spinner.prototype._format = function(value){
    if (value > 0) {
        return "+" + value;
    } else {
        return value;
    }
}

var spinner = $( "#spinner" ).spinner({
    step: 0.25,
    min:-12, 
    max:8
});

jsFiddle Demo

现在它在变化和旋转上都得到了更新,没有丑陋的跳跃,它也适用于负数。这样做当然意味着您不能使用全球化数字格式。

于 2013-04-12T15:12:15.650 回答