jquery-如何在更改时最好地更新文本文件
多亏了这里的代码和人员,我在一个页面上有一个jquery脚本,我需要调用更大函数的一部分。我想我不知道如何分解成多个函数。当我创建动态输入字段时,一切都正常运行,它将一些金额字段汇总到一个汇总框中,但如果我不创建新的输入框,它就不会得到我需要汇总这些输入的部分。以下是我到目前为止所拥有的示例,代码中有一条注释,我需要帮助:jquery-如何在更改时最好地更新文本文件,jquery,Jquery,多亏了这里的代码和人员,我在一个页面上有一个jquery脚本,我需要调用更大函数的一部分。我想我不知道如何分解成多个函数。当我创建动态输入字段时,一切都正常运行,它将一些金额字段汇总到一个汇总框中,但如果我不创建新的输入框,它就不会得到我需要汇总这些输入的部分。以下是我到目前为止所拥有的示例,代码中有一条注释,我需要帮助: 您需要添加一个事件。首先在每个金额输入上添加一个“金额”类。然后添加如下内容: $('table').on('change', '.amount', function()
您需要添加一个事件。首先在每个金额输入上添加一个“金额”类。然后添加如下内容:
$('table').on('change', '.amount', function() {
var amount = 0;
$('.amount').each(function() {
amount =+ this.value;
})
$('#Totals').val(amount);
})
此外,还要在金额输入中添加type=“number” 您需要添加一个事件。首先在每个金额输入上添加一个“金额”类。然后添加如下内容:
$('table').on('change', '.amount', function() {
var amount = 0;
$('.amount').each(function() {
amount =+ this.value;
})
$('#Totals').val(amount);
})
此外,还要在金额输入中添加type=“number” 计算总计的代码块位于“添加新行”按钮的单击处理程序中,因此仅当按下此按钮时才会调用该代码块。您需要将其移到click处理程序之外。我已经将其转换为如下函数
function updateTheTotal(){
var total = 0;
$('input.Amount').each(function () {
total += parseInt(this.value, 10) || 0;
if (this.value.length === 0) this.value = 0;
});
$('#Totals').val(total);
}
它在所有金额字段的键控时被调用
$('.Amount').on('keyup', updateTheTotal);
注意:您的代码是通过缓存选择器进行优化的候选代码计算总计的代码块位于“添加新行”按钮的单击处理程序中,因此仅当按下此按钮时才会调用它。您需要将其移到click处理程序之外。我已经将其转换为如下函数
function updateTheTotal(){
var total = 0;
$('input.Amount').each(function () {
total += parseInt(this.value, 10) || 0;
if (this.value.length === 0) this.value = 0;
});
$('#Totals').val(total);
}
它在所有金额字段的键控时被调用
$('.Amount').on('keyup', updateTheTotal);
注意:您的代码可以通过缓存选择器进行优化创建一个函数来执行总计,并在现有的单击事件和绑定到更改字段的新更改事件中调用它
function updateTotal()
{
var total = 0;
$('input[name^="Amount"]').change(function () {
total += parseInt(this.value, 10) || 0;
if (this.value.length === 0) this.value = 0;
});
$('#Totals').val(total);
}
$('body').on('change','input[name^="Amount"]',function () {
updateTotal();
});
创建一个函数来执行总计,并在现有的click事件和绑定到change fields的new change事件中调用它
function updateTotal()
{
var total = 0;
$('input[name^="Amount"]').change(function () {
total += parseInt(this.value, 10) || 0;
if (this.value.length === 0) this.value = 0;
});
$('#Totals').val(total);
}
$('body').on('change','input[name^="Amount"]',function () {
updateTotal();
});
这正是我努力的目标。谢谢这正是我努力的目标。谢谢