Javascript 基于输入字段的计算
我有以下代码,我可以在其中输入发票价格和详细信息,我可以输入多个值: 现在我需要做计算,但我不知道从哪里开始,希望它发生在每一个关键点,模糊或焦点事件 以下是我的标记和编写的Javascript:Javascript 基于输入字段的计算,javascript,jquery,Javascript,Jquery,我有以下代码,我可以在其中输入发票价格和详细信息,我可以输入多个值: 现在我需要做计算,但我不知道从哪里开始,希望它发生在每一个关键点,模糊或焦点事件 以下是我的标记和编写的Javascript: <table><tr> <td><label for="invoicenumber">Invoice Number</label> <input type="text" id="invoice
<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#"> <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" /> <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()" /> %</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的功能。这没有帮助我,我是如此初学者在这方面,它从来没有工作