来自范围输入的数字内的逗号

时间:2017-01-08 10:37:51

标签: jquery

所以我正在努力使这项工作更加顺利,但我在整个事情上都是一种新的东西,所以我有一些我无法工作的东西。

我的第一个问题是逗号。因此,如果你拖动第一个范围并得到一个像1000000这样的值,我希望它看起来像1,000,000。或任何其他号码。

我已尝试过一些东西,但它看起来并不是一直有效。

function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}

jQuery('#slider1out').each(function () {
    var v_pound = jQuery(this).html();
    v_pound = numberWithCommas(v_pound);

    jQuery(this).html(v_pound);

});

这些是小提琴(通常当你拖动第一个范围并得到一个值时,答案应该出现在底部,但它不会出现在小提琴上,不知道为什么):https://jsfiddle.net/1x60sp0a/ < / p>

如果你能帮助我,我将不胜感激! 谢谢,并有一个伟大的周末!

1 个答案:

答案 0 :(得分:0)

如果您将小提琴js加载类型更改为no wrap - in <body>,则您的代码似乎正常工作(这将使您的jsfiddle正常工作)。

您可以将大部分代码放在正确的位置,以完成您所追求的目标。要使输出有效,它将基于form元素oninput事件设置output元素的值。我们可以利用此事件来调用numberWithCommas函数。

这可以通过两种方式完成:

  1. numberWithCommas函数公开给全局范围,并以内联格式oninput属性调用它。即。 oninput="level.value = numberWithCommas(flevel.valueAsNumber)" JSFIDDLE

  2. 在我看来,更优选的是,自定义全局范围函数有可能被覆盖。挂钩表单上的input事件,并执行我们自己的函数来替换output元素的html。 (如果您选择此方法,我建议您将$('#slider1out')$('#flying1')查找保存到输入函数之外的变量以减少DOM查找,以下格式提供的代码为简洁起见) {{3 }}

    $(function() {
    
        function numberWithCommas(x) {
            return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
        }
    
        $('#calculationForm').on('input', function(){
            $('#slider1out').html(numberWithCommas($('#flying1').val()));
        });
    });