如何使用jQuery制作货币文本框



我是jQuery的新手。 我正在研究一种计算字段的方法,并找到了以下代码来完成此操作:

$(function () {
    var laborValue = $('input:text[id$=txtLabor]').keyup(totalOfBudget);
    var materialValue = $('input:text[id$=txtMaterial]').keyup(totalOfBudget);
    var subContractorValue = $('input:text[id$=txtSubContractor]').keyup(totalOfBudget);
    var miscValue = $('input:text[id$=txtMiscellaneous]').keyup(totalOfBudget);
    var equipmentValue = $('input:text[id$=txtEquipment]').keyup(totalOfBudget);
    var totalValue = $('input:text[id$=txtEquipment0]').keyup(totalOfContract);
    var overheadValue = $('input:text[id$=txtEquipment1]').keyup(totalOfContract);
    var profitValue = $('input:text[id$=txtEquipment2]').keyup(totalOfContract);
    function totalOfBudget() {
        var value1 = laborValue.val();
        var value2 = materialValue.val();
        var value3 = subContractorValue.val();
        var value4 = miscValue.val();
        var value5 = equipmentValue.val();
        var sum = add(value1, value2, value3, value4, value5);
        $('input:text[id$=txtEquipment0]').val(sum);
    }
    function totalOfContract() {
        var value6 = totalValue.val();
        var value7 = overheadValue.val();
        var value8 = profitValue.val();
        var sum = add(value6, value7, value8);
        $('input:text[id$=txtTotalContract]').val(sum);
    }
    function add() {
        var sum = 0;
        for (var i = 0, j = arguments.length; i < j; i++) {
            if (IsNumeric(arguments[i])) {
                sum += parseFloat(arguments[i]);
            }
        }
        return sum;
    }
    function IsNumeric(input) {
        return (input - 0) == input && input.length > 0;
    }
});

代码运行完美。 我在添加字段时获得了正确的值,但我唯一剩下的问题是如何将这些文本框变成仅限数字和货币的字段? 现在,这些字段将接受任何文本,但我希望它们只接受数字,并将其显示为美元(例如:$1,234.56) 如果这可以在 C# 代码隐藏中完成,那也没关系,我只展示了这个,因为这个代码块正在处理计算。

提前感谢!

如果你正在寻找一个jquery解决方案,这个问题推荐了Globalize库(https://github.com/jquery/globalize)来格式化和本地化货币:如何在JavaScript中将数字格式化为货币?

最新更新