Использование jQuery для суммирования нескольких полей ввода на основе частичного соответствия атрибуту name

У меня есть таблица из нескольких строк, каждая из которых содержит 12 столбцов (один в месяц). В конце каждой строки находится поле "Всего".

Каждое поле ввода имеет систематическое имя, например:

name="variable1_jan", name="variable1_feb"

и т.п.

Я хотел бы ссылаться на эти поля на частичное совпадение (т.е. Все поля, которые имеют имя, включая "переменная1_", и суммировать их по всем остальным, помещая итоговую сумму в полное поле, в ***** (через поля ввода).

Усеченный пример строки таблицы:

Моя цель: jQuery, который найдет все поля ввода, в которых содержится имя (в этом примере) "r_inpatient", и суммируйте их, затем поместите это значение в "r_inpatient_tot". Возможно ли это в jQuery?

2 ответа

Конечно, это должно работать:

$("input[name^=r_inpatient]").*****(function() {
 var sum = 0;
 $("input[name^=r_inpatient]").not("input[name=r_inpatient_tot]").each(function() {
 var number = parseInt(this.value) || 0;
 sum += number
 });
 $("input[name=r_inpatient_tot]").val(sum);
});

Демо: http://jsfiddle.net/x2BE3/


DEMO

$("input[name^=r_inpatient]").*****(function () {
 var sum = 0;
 $("input[name^=r_inpatient]").not("input[name=r_inpatient_tot]").each(function () {
 sum += (parseInt(this.value) ? parseInt(this.value) : 0);
 });
 $("input[name=r_inpatient_tot]").val(sum);
});

Рекомендации

атрибут-старты-с-селектор

.не()

.*****()

licensed under cc by-sa 3.0 with attribution.