Объединение чисел вместо их сложения - PullRequest
0 голосов
/ 28 мая 2020

Я часами читал в Интернете и пробовал разные вещи, я не могу найти ответ на мою проблему. Я хочу иметь возможность устанавливать флажок и получать значение из поля ввода. ie Если отмечено более одного флажка, значения (оба 100 фунтов стерлингов) дадут сумму 200 фунтов стерлингов. Я получаю "100100"!

Моя html таблица создается с PHP со значением '$ price' из базы данных mySQL как DECIMAL (10,2):

<html>
<table>
<tr>
<td><input name='payInvoice' type='checkbox' onchange='add()'></td>
<td><input id='amountToPay' value=$price></td>
</tr>
</table>
</html>

и javascript:

<script>
function add(){
var payOff = " "
    document.getElementById('poff').value = "";   
var payoff = document.getElementsByName("payInvoice");
    for (var i=0; i<payoff.length; i++){
    if (payoff[i].checked == true){
    amount = document.getElementById("amountToPay");
    $s = parseInt(amount.value);
    payOff += ($s) ;   
    document.getElementById('poff').value = payOff;
        } 
    }
 }
</script>

1 Ответ

1 голос
/ 28 мая 2020

Измените var payOff = " " на var payOff = 0, и он будет работать. Вы добавляете строку к целым числам, поэтому она не работает.

Итак, когда вы пишете payOff += $(s);, вы фактически делаете payOff = (" " + interger), что в основном конкатенация строк, поэтому вы всегда получите строку обратно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...