2016-01-12 2 views
1

Что я хотел бы достичь использую это:Как я могу суммировать поля ввода по имени, начиная с?

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
     <script> 
      $(document).ready(function(){ 
       $("input[name^='audi']").css("background-color", "yellow");}); 
     </script> 
    </head> 
    <body> 
     <input name="audi_a4" type="text" value="3"> 
     <input name="audi_a6" type="text" value="4"> 
     <input name="mercedes" type="text" value="5"> 
     <input name="toyota" type="text" value="2"> 
     <p> 
      This selector selects all input fields with the attribute name that starts with 'audi'. 
     </p> 
    </body> 
</html> 

Вместо выбора входов я хотел бы получить их сумму в другом поле ввода (Здесь сумма должна быть «7» Как я могу сделать. это?

+0

Можно ли вообще изменить HTML? Было бы намного легче достичь этого, если вы можете сгруппировать элемент ввода по классу или атрибуту данных. –

+0

К сожалению, мне нужно использовать атрибут name для их суммирования. В приведенном выше примере это используется для изменения форматирования css. Я считаю, что это можно сделать для достижения суммы полей. – Pela

+0

Число динамических входов или всегда есть только 'audi',' mercedes' и 'toyota'? –

ответ

1

Вы можете сделать так.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
    updatesum(); 
 
    }); 
 
    
 
    function updatesum(){ 
 
    sum=0; 
 
    $("input[name^='audi']").each(function(){ 
 
     sum+=Number($(this).val()); 
 
    }); 
 
    $("#sumofaudi").val(sum); 
 
    } 
 
</script> 
 
</head> 
 
<body> 
 

 
<input name="audi_a4" type="text" value="3" onchange="updatesum();"> 
 
<input name="audi_a6" type="text" value="4" onchange="updatesum();"> 
 
    SUM of AUDI :<input name="sumofaudi" id="sumofaudi" type="text" value=""> 
 
<input name="mercedes" type="text" value="5" onchange="updatesum();"> 
 
<input name="toyota" type="text" value="2" onchange="updatesum();"> 
 
    
 

 
<p>This selector selects all input fields with the attribute name that starts with 'audi'.</p> 
 
</body> 
 
</html>

+0

Это почти то, что я искал. Как сделать это для расчета по мере ввода? Теперь он работает только для предопределенных значений в форме html – Pela

+0

Подождите, пока я обновил свой ответ ... –

+0

Теперь я обновляю все ответы на любые текстовые поля. –

0
iTotal = 0; 
     $("input[name^='audi']").each(function() { 
      iTotal += parseInt($(this).val(),10); 
     }); 
     alert(iTotal) 
+0

Пожалуйста, используйте ссылку для редактирования по вашему вопросу, чтобы дополнить ее контекстом, подробной информацией и/или примерами кода. Кнопка _Post Answer_ должна использоваться только для ** полных ответов на вопрос **. – mathielo

Смежные вопросы