2016-07-05 1 views
0

я имею эту функцию, чтобы вычислить сумму 3 входа:сумма intger входов Javascript

function calculateTotal() { 
 

 
var result = fd.field('_x002D_ESO').value() + fd.field('Artdesk').value() + fd.field('OtherDesign').value(); 
 

 
    // put the result somewhere into your form 
 
\t 
 
\t document.getElementsByClassName("myOutput")[0].innerHTML = "Le budget total est : " + result; 
 

 
} 
 

 
    
 

 
fd.field('_x002D_ESO').change(calculateTotal); 
 

 
fd.field('Artdesk').change(calculateTotal); 
 

 
fd.field('OtherDesign').change(calculateTotal); 
 

 
calculateTotal(); 
 
     });

пример. если я поставил 1 в первом поле и 2 во втором и 3 в третьем поле, я не получу сумму, что я получаю 123 любое решение?

+0

Вы можете запустить этот кусок на JSFiddle? –

+0

Я только что создал основную скрипту того, что вам может понадобиться, используя jquery и javascript: https://jsfiddle.net/chengsieuly/rzrhgxzs/1 Что-то вроде этого должно работать. Пожалуйста, дай мне знать, если возникнут какие-либо вопросы. –

ответ

1

fd.field ('_ x002D_ESO'). Значение() возвращает строку, вам нужно отдать ее целому числу. Если строка пуста или иначе falsy, мы затем установите значение будет 0.

var value1 = parseInt(fd.field('_x002D_ESO').value()) || 0; 
var value2 = parseInt(fd.field('Artdesk').value()) || 0; 
var value3 = parseInt(fd.field('OtherDesign').value()) || 0; 

var result = value1 + value2 + value3; 
+0

Я пытаюсь это сделать и все еще не работает, я получаю тот же результат – ysfibm

+0

вы можете console.log их? Какая ошибка? Там может быть какое-то пробелы, вызывающие parseInt сбой – derp

+0

Это то, что я положил: function calculateTotal() { var result = parseInt (fd.field ('_ x002D_ESO'). Value()) + parseInt (fd.field (' Artdesk '). Value()) + parseInt (fd.field (' OtherDesign '). Value()); // помещаем результат где-то в вашу форму \t \t document.getElementsByClassName ("myOutput") [0] .innerHTML = "Le budget total est:" + result; fd.field ('_ x002D_ESO'). Change (calculateTotal); fd.field ('Artdesk'). Change (calculateTotal); fd.field ('OtherDesign'). Change (calculateTotal); расчетTotal(); }); – ysfibm

0

я изменить его на это и до сих пор антиплазмин работы

function calculateTotal() { 
 

 
var result = parseInt(fd.field('_x002D_ESO').value()) + parseInt(fd.field('Artdesk').value()) + parseInt(fd.field('OtherDesign').value()); 
 
// put the result somewhere into your form 
 

 
document.getElementsByClassName("myOutput")[0].innerHTML = "Le budget total est : " + result; 
 

 
} 
 

 
    
 

 
fd.field('_x002D_ESO').change(calculateTotal); 
 

 
fd.field('Artdesk').change(calculateTotal); 
 

 
fd.field('OtherDesign').change(calculateTotal); 
 

 
calculateTotal(); 
 
    });