【问题标题】:Add plus sign in spinner (Jquery)在微调器中添加加号(Jquery)
【发布时间】:2013-04-12 23:38:42
【问题描述】:

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

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/

【问题讨论】:

    标签: jquery jquery-ui jquery-plugins spinner


    【解决方案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);
        }
    
    });
    

    【讨论】:

    • 这里它每次都返回加号,我想要的是:如果我写加号,它必须在我旋转时保留,否则如果我不写加号,我旋转没有加号,但在你的情况下,我有总是加
    • 酷它工作!!!thanx 但我也不明白啊啊啊我写逗号代替点值返回0,但是当我写点一切工作正常时,你有一个想法我该如何解决这个问题,谢谢提前
    • @GoodD 因为用逗号替换点会在javascript中创建不是数字的东西,插件无法正确检测到它是什么。我相信 numberFormat 选项或culture 选项可以对此有所帮助。
    【解决方案2】:

    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

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

    【讨论】:

    • 添加到此,如果匹配从字符串的第一个字符开始,indexOf 将返回“0”。如果搜索“+”,“+45”将返回“0”。
    • 好吧,看起来不错,但另一个问题,为什么我旋转时代码不起作用?
    • @GoodD 确实如此,如果您单击输入以触发更改事件。
    • 我的意思是 [link]jsfiddle.net/XseWc/229 当我旋转它时不会改变任何东西,它只在功能更改中起作用而不是旋转
    • 如果只使用微调箭头,则不会在前面加上加号。
    猜你喜欢
    • 1970-01-01
    • 2020-01-14
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多