使用jquery或javascript将逗号添加到禁用字段

时间:2013-08-21 18:55:21

标签: javascript jquery forms

我有一个用于计算某些数字的表单,表单上的最后3个输入字段被禁用,因为它们显示了计算器的结果。

我正在使用以下javascript / jquery将逗号添加到用户可编辑字段,这些字段效果很好,但我似乎找不到在“结果”字段中添加逗号的方法:

$('input.seperator').change(function(event){
  // skip for arrow keys
  if(event.which >= 37 && event.which <= 40){
      event.preventDefault();
  }
  var $this = $(this);
  var num = $this.val().replace(/,/gi, "").split("").reverse().join("");

  var num2 = RemoveRougeChar(num.replace(/(.{3})/g,"$1,").split("").reverse().join(""));

  // the following line has been simplified. Revision history contains original.
  $this.val(num2);
});

function RemoveRougeChar(convertString){

if(convertString.substring(0,1) == ","){

return convertString.substring(1, convertString.length)            

}

return convertString;
}

这就是我正在使用填充字段,基本上字段以美元显示结果,所以我试图每3个数字添加一个逗号:

$('#incorrect-payment').val(fieldK);
$('#correcting-payment').val(fieldL);
$('#total-cost').val(fieldM);

2 个答案:

答案 0 :(得分:1)

我想你想要使用这样的函数:

function FormatCurrency(amount, showDecimals) {

    if (showDecimals == null)
        showDecimals = true;

    var i = parseFloat(amount);
    if (isNaN(i)) { i = 0.00; }
    var minus = false;
    if (i < 0) { minus = true; }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);

    if (showDecimals) {
    if (s.indexOf('.') < 0) { s += '.00'; }
    if (s.indexOf('.') == (s.length - 2)) { s += '0'; }
    }

    //s = minus + s;
    s = '$' + FormatCommas(s, showDecimals);
    if (minus)
        s = "(" + s + ")";
    return s;
}

function FormatCommas(amount, showDecimals) {
    if (showDecimals == null)
        showDecimals = true;


    var delimiter = ","; // replace comma if desired
    var a = amount.split('.', 2)
    var d = a[1];
    var i = parseInt(a[0]);
    if (isNaN(i)) { return ''; }
    var minus = '';
    if (i < 0) { minus = '-'; }
    i = Math.abs(i);
    var n = new String(i);
    var a = [];
    while (n.length > 3) {
        var nn = n.substr(n.length - 3);
        a.unshift(nn);
        n = n.substr(0, n.length - 3);
    }
    if (n.length > 0) { a.unshift(n); }
    n = a.join(delimiter);

    if (!showDecimals) {
        amount = n;
    }
    else {
    if (d.length < 1) { amount = n; }
    else { amount = n + '.' + d; }
    }
    amount = minus + amount;
    return amount;
}

答案 1 :(得分:0)

可能您可能希望通过javascript为您的三个只读输入字段手动触发更改事件。使用jquery trigger。我不确定,但如果没有用户可以更改这些值,那么拥有只读输入字段似乎是个坏主意。如果具有某种安全性的用户可以编辑那些而有些则不能,则通常具有只读输入字段是好的。