在Javascript无效的情况下为数字添加逗号

时间:2015-03-12 20:53:49

标签: javascript jquery wordpress

我已尝试将所有内容自动添加到通过表单自动生成的数字中的逗号分隔符(每千/十万等)。

我试过了:

<script type="text/javascript">//<![CDATA[ 
$(window).load(function(){
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
}


$('span#ninja_forms_field_83').each(function(){
var v_pound = $(this).html();
v_pound = numberWithCommas(v_pound);

$(this).html(v_pound)

    })
});//]]>  

</script>

但它根本不起作用。

表单的链接是:http://freelance.tstwebdesign.co.uk/tyco/ 选择不同的值时,您可以看到底部的值发生变化。

提前致谢

3 个答案:

答案 0 :(得分:1)

我认为你不需要.each();

v_pound = $('span#ninja_forms_field_83').html();
v_pound = numberWithCommas(v_pound);
$('span#ninja_forms_field_83').html(v_pound);

请参阅:http://jsfiddle.net/oqm0zrL1/

jQuery的each()迭代一个数组。在你的情况下,它只是一个字符串!

编辑:您如何声明函数和范围可能存在问题。

Edit2:你需要为每个输入的.change()添加一个eventHandler。 类似的东西:

$('input').change(function() {
  v_pound = $('span#ninja_forms_field_83').html();
  v_pound = numberWithCommas(v_pound);
  $('span#ninja_forms_field_83').html(v_pound);
});

现在,您无法直接在表单上使用.change(),因此您的选择器需要选择所有复选框和输入。 $('input')应该有用。

为了更明确一点,我会使用$('#ninja_forms_form_1输入')

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

我认为你必须拥有一个图书馆,因为它已经完成并且要好得多。请查看此文档numeraljs

您必须包含在浏览器中

<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>

如果你想格式化任何数字,很容易

numeral(1000000).format('0,0')