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

Вопрос: У меня есть пара текстовых входов, и я хотел бы вычислить сумму значений в другом вводе. Это должно произойти "на лету", как только пользователь вводит значение на одном из входов. Я планирую использовать jQuery для этого, и я хотел бы добавить имя класса для каждого ввода, что-то вроде class= "input1", class= "input2" и так

Вопрос:

У меня есть пара текстовых входов, и я хотел бы вычислить сумму значений в другом вводе. Это должно произойти “на лету”, как только пользователь вводит значение на одном из входов. Я планирую использовать jQuery для этого, и я хотел бы добавить имя класса для каждого ввода, что-то вроде class= “input1”, class= “input2” и так далее.

Моя проблема в том, что я не знаю, чтобы добавить все эти значения, и учитывая тот факт, что у меня более 50 входов, я не хочу “добавлять их вручную”.

Любая помощь приветствуется.

Лучший ответ:

Если вы украшаете все входы, которые хотите добавить вместе с классами input1, input2 и т.д., Это будет получать сумму текущих значений во всех этих входах

var sum = 0; $(«input[class *= ‘input’]»).each(function(){ sum += +$(this).val(); });

Тогда, естественно, если вы хотите поместить это значение во вход destination id

$(«#destination»).val(sum);

Здесь скрипка

РЕДАКТИРОВАТЬ

Если вы хотите, чтобы это выполнялось, когда какое-либо из этих текстовых полей было изменено, вы можете поместить это в обработчик события изменения

$(document).on(«change», «input[class *= ‘input’]», function() { var sum = 0; $(«input[class *= ‘input’]»).each(function(){ sum += +$(this).val(); }); $(«#destination»).val(sum); });

Вот эта скрипка

РЕДАКТИРОВАТЬ

Per Jaspers, если вы знаете, что input1, input2 и т.д. Всегда будут первым классом на ваших входах, т.е. Вы никогда не будете делать

<input class=’someNewClass input1′

то вы могли бы

$(«input[class ^= ‘input’]»).each(function(){

^= означает, что начинается с, а *= означает где угодно.

Ответ №1

дать им общее имя, и вам нужно проанализировать значение, поскольку оно будет первоначально изначально

var result= 0; $(«input[name=’sum’]»).each(function(){ result = result + parseInt($(this).val(),10); });

Оцените статью
Добавить комментарий