2013-11-25 3 views
0

Я пытаюсь написать сценарий jquery, чтобы скомпоновать все текстовые поля, в которых есть «* Сумма» в ID. У меня есть следующее, но не могу понять, как их суммировать и присваивать значение другому текстовому полю.jquery subtotal количество текстовых полей

<input type="text" id="1stAmount"> 
<input type="text" id="2ndAmount"> 
<input type="text" id="3rdAmount"> 

// to get all the values of the textboxes that have Amount in the ID 
$("input[name*='Amount']").value(); 
+0

Почему это помечено C#? –

ответ

2

Вы можете получить все входы с идентификаторами, которые соответствуют Amount, используя "[id * = Amount]". Кроме того, .val() - это метод, который извлекает значение ввода. Однако, это только возвращает значение первого матча:

$('[id*=Amount]').val(); // will be the first input's value 

Для извлечения всех значений, вы должны шлейф через каждый из элементов коллекции, возвращенных и сложить значение:

var total = 0; 
$('[id*=Amount]').each(function(element) { 
    // get the value of the current element 
    var text = $(this).val(); 
    // add the parsed total 
    total += parseFloat(text); 
}); 

// do something with total here 
alert(total) 

Пример JsFiddle на http://jsfiddle.net/2xpNa/

0

Вы не можете использовать [name*=Amount] для получения текстовых полей с идентификаторами, используйте [id*=Amount]

Использование .each()

JSFIDDLE DEMO

var ids = $('[id*=Amount]'); 
var count = 0; 
$.each(ids,function(){ 
    count += parseFloat(this.value); 
}); 
alert(count); 
0

попробовать это:

var values = $("input[name*='Amount']").value(); 
var sum = 0; 
for (int i=0;i<values.length;i++){ 
sum += parseInt(values[i]); 
} 
$("#yourTextbox").val(sum); 
Смежные вопросы