我正在尝试使用微调器在我的字段中添加一个符号(+),但每次没有符号时返回该符号,我能以某种方式解决这个问题吗?
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/
答案 0 :(得分:1)
indexOf返回索引,如果未找到,则返回-1。您需要与-1而不是0
进行比较if(ph.indexOf('+') == -1)
但是,我建议采用完全不同的方式。相反,覆盖_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
});
现在它在变化和旋转方面都得到了更新,没有丑陋的跳跃,它也适用于负数。这样做当然意味着您无法使用全球化数字格式。
答案 1 :(得分: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);
}
});