I am completely new to jQuery. I am working on a way to calculate fields and found the below code to accomplish this:

$(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;
    }
});

The code works perfectly. I get the correct value when adding the fields, but my only remaining issue is how do I make these textboxes into number and currency only fields? Right now the fields will take any text, but I would like them to take only numbers, and have it display as US currency (example: $1,234.56) If this can be done in C# code-behind then that is fine too, I only showed this since this block of code is handling the calculations.

Thanks in advance!

有帮助吗?

解决方案

If you're looking for a jquery solution, the library Globalize (https://github.com/jquery/globalize) is reccomended in this question for formatting and localizing currencies: How can I format numbers as money in JavaScript?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top