Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于输入字段的计算_Javascript_Jquery - Fatal编程技术网

Javascript 基于输入字段的计算

Javascript 基于输入字段的计算,javascript,jquery,Javascript,Jquery,我有以下代码,我可以在其中输入发票价格和详细信息,我可以输入多个值: 现在我需要做计算,但我不知道从哪里开始,希望它发生在每一个关键点,模糊或焦点事件 以下是我的标记和编写的Javascript: <table><tr> <td><label for="invoicenumber">Invoice Number</label> <input type="text" id="invoice

我有以下代码,我可以在其中输入发票价格和详细信息,我可以输入多个值:

现在我需要做计算,但我不知道从哪里开始,希望它发生在每一个关键点,模糊或焦点事件

以下是我的标记和编写的Javascript:

<table><tr>
          <td><label for="invoicenumber">Invoice Number</label>
            <input type="text" id="invoicenumber" class="input-block-level-inputfields required" name="invoicenumber" placeholder="Invoice Number" value="#invoicenumber#">&nbsp;&nbsp;<a href="javascript:;" id="last5invoices">Last 5 Invoices</a>
            </td>
        </tr>
        <tr style="background:##cccccc;text-shadow:##E9E9E9;"><td style="padding-left:190px;"><div>
        <input type="button" id="btnAdd" class="btn" onclick="dupForm('input', '.clonedInput', 'btnAdd', 'btnDel');" value="Add" />
        <input type="button" id="btnDel" class="btn" onclick="rmForm('input', '.clonedInput', 'btnAdd', 'btnDel');" value="Remove" /><br /><br />
    </div>
            <div id="input1" style="margin-bottom:4px;" class="clonedInput">
                <input type="text" class="input-block-level-inputfields" name="product1" id="product1" placeholder="Product Details" />
                <input type="text" class="btnCalculate input-block-level-inputfields" title="Price" name="price1" id="price1" style="width:50px;" placeholder="Price" onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')" />
            </div>
        </td></tr>
        <tr>
          <td><label for="amount">Amount</label>
            <input type="text" id="amount" name="amount" class="input-block-level-inputfields" placeholder="0.00" value="#amount#" readonly="readonly" />&nbsp;&nbsp;<span id="Amountlabel"></span></td>
        </tr>
        <tr>
          <td><label for="vat">VAT</label>
            <input type="text" name="vat" id="vat" class="input-block-level-inputfields" placeholder="0.00" value="#vat#" maxlength="5" onfocus="vatCalculate()" onblur="vatCalculate()" />&nbsp;&nbsp;%</td>
        </tr>
        <tr>
          <td><label for="vat"><strong>Total</strong></label><span id="answer">#DecimalFormat(0.00)#</span><input type="hidden" name="hiddenAnswer" id="hiddenAnswer" value="" /></td>
        </tr></table>

发票号码


数量 增值税 % 总计#十进制格式(0.00)#
我的Jquery代码

<script type="text/javascript">
        $(document).ready(function(e) {
            $('input[placeholder=Price]').on('keyup', recalculateTotal);
            $('input[name="vat"]').on('keyup', vatCalculate);
            $("#currency").change(function () {
                var strData = $(this).find(":selected").text();
                if ($.trim(strData) != '(Select One)...') {
                    $("#Amountlabel").text(strData)
                }
                else {
                    $("#Amountlabel").text('');         
                }
            }).trigger('change');   
        }); 
        function trimNums(stringToTrim)
        {
            return stringToTrim.replace(/\d+$/,"");
        }         
        function vatCalculate() {
            var dvat = parseFloat($.trim($("#vat").val()));
            var calculate = parseFloat($("#amount").val() * dvat / 100);
            var existingData = parseFloat($("#amount").val());
            var totalanswer = parseFloat(existingData + calculate);
            var store = $('#hiddenAnswer').val(parseFloat(existingData + calculate));
            if($.trim(existingData) != 'NaN') {
                $("#answer").text(store.val());     
            }

        }
        function dupForm(divId, divClass, btnAdd, btnRm)
        {
            var num     = $(divClass).length;
            var newNum  = new Number(num + 1);
            var i;

            var newElem = $('#' + divId + num).clone().attr('id', divId + newNum);

            for (i=0; i < newElem.children().length; i++)
            {
                var attrId = trimNums(newElem.children(':eq('+i+')').attr('id'));
                var attrName = trimNums(newElem.children(':eq('+i+')').attr('name'));

                newElem.children(':eq('+i+')').attr('id', attrId + newNum).attr('name', attrName + newNum).attr('value','');
            }
            $('#' + divId + num).after(newElem);
            $('#' + btnRm).attr('disabled',false);
            vatCalculate();
        }
        function recalculateTotal() {
            var total = 0.00;
            $('input[title=Price]').each(function() {
                total += parseFloat($(this).val());
            });
            $('#amount').val(total);
            $('#answer').text(total);
        }
        function rmForm(divId, divClass, btnAdd, btnRm)
        {
            var num = $(divClass).length;

            $('#' + divId + num).remove();
            if (num-1 == 1) {
                $('#' + btnRm).attr('disabled','disabled');
                $('#' + btnAdd).attr('disabled',false); 
            }
            recalculateTotal();
            vatCalculate();
        }
    </script>

$(文档).ready(函数(e){
$('input[placeholder=Price]')。在('keyup',重新计算总计)上;
$('input[name=“vat”]”)。在('keyup',VATCLUME)上;
$(“#货币”)。更改(功能(){
var strData=$(this.find(“:selected”).text();
如果($.trim(strData)!='(选择一个)…。){
$(“#Amountlabel”).text(标准数据)
}
否则{
$(“#Amountlabel”).text(“”);
}
}).触发(“变更”);
}); 
功能微调器(stringToTrim)
{
返回stringToTrim.replace(/\d+$/,“”);
}         
函数vatCalculate(){
var dvat=parseFloat($.trim($(“#vat”).val());
var calculate=parseFloat($(“#金额”).val()*dvat/100);
var existingData=parseFloat($(“#金额”).val();
var totalanswer=parseFloat(现有数据+计算);
var store=$('hiddenAnswer').val(parseFloat(existingData+calculate));
如果($.trim(现有数据)!='NaN'){
$(“#答案”).text(store.val());
}
}
函数双重形式(divId、divClass、btnAdd、btnRm)
{
var num=$(divClass).length;
var newNum=新的数字(num+1);
var i;
var newElem=$('#'+divId+num).clone().attr('id',divId+newNum);
对于(i=0;i
您可以从这里开始。先听你们要求的活动

$(document).on('keyup focus blur', 'input',  function(e){
        console.log("Current Event ID" + e.target.id);      
        //OR
        console.log("Current Event ID" + this.id);      
    });

这不是唯一的输入标记,还有其他的输入标记,所以我不能运行这个并检查使用this.id您将了解当前的输入事件。张贴你可以做计算a/c的功能。这没有帮助我,我是如此初学者在这方面,它从来没有工作