我有一个页面,上面有多个表单,我很难从每个表单中获取值来提供各个表的总计。 HTML 是动态生成的,我无法对其进行修改。这是每个表单的样子(但每次运行时它们的行数都会不同......
<form>
<input type=number class="entries" onchange="addTotal();">
<input type=number class="entries" onchange="addTotal();">
<input type=number class="totals">
</form>
这是我必须添加每个表单并将总计放入“总计”框中的函数。这对于第一种形式非常有用,但问题是无论我输入哪种形式的值,它都会汇总顶部形式“总计”中的所有内容。
function addTotal() {
var entry = $('.entries').get();
var total = 0;
for (var i = 0; i < entry.length; i++) {
if(Number(entry[i].value))
total += Number(entry[i].value);
}
$('.totals').value = total;
};
我还尝试摆脱 onchange 操作并尝试将每个表单引用为“this”,但我似乎无法以这种方式获取所有值,我只得到一个数组...
$(.entries').change(function() {
var entry = ($(this.form).get());
console.log(entry);
});
我确信我可能缺少一些明显的东西,但我似乎无法在这里得到我需要的东西。任何建议,将不胜感激!!
最佳答案
已更新现在可用于任意数量的字段 这是一个 fiddle :http://jsfiddle.net/vx403ax0/6/
$(document).ready(function () {
$(".entries").change(function () {
$("form").each(function () {
var result = 0;
$(this).find(".entries").each(function(i, el){
result += parseInt(el.value);
});
if(isNaN(result)){
return;
} else{
$(this).find(".totals").val(result);
}
});
});
});
关于jquery - 将 jquery 选择限制为特定形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28457203/