Essas funções javascript somam valores de dois textbox e coloca o valor formatado em um terceiro:
//Essa função formata uma string em moeda
function moeda_format(valor){
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var SeparadorMilesimo = '.';
var SeparadorDecimal = ',';
len = valor.length;
for(i = 0; i < len; i++)
if ((valor.charAt(i) != '0') && (valor.charAt(i) != SeparadorDecimal)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(valor.charAt(i))!=-1) aux += valor.charAt(i);
aux += key;
len = aux.length;
if (len == 0) valor = '';
if (len == 1) valor = '0'+ SeparadorDecimal + '0' + aux;
if (len == 2) valor = '0'+ SeparadorDecimal + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += SeparadorMilesimo;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
valor = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
valor += aux2.charAt(i);
valor += SeparadorDecimal + aux.substr(len - 2, len);
}
return valor;
}
//Essa funcao realiza a soma e deve ser chamada no evento
OnBlur dos textbox que terão os valores somados
function soma_valores(){
var vl_repasse = document.getElementById('repasse_empreendimento').value;
var vl_contrapartida = document.getElementById('contrapartida_empreendimento').value;
var vl_final = 0.0;
var vl_final_formatado = '';
if (vl_contrapartida == ''){
vl_contrapartida = 0.0;
}else{
vl_contrapartida = vl_contrapartida.replace(/\./g , '*');
vl_contrapartida = vl_contrapartida.replace(',', '.');
vl_contrapartida = vl_contrapartida.replace(/\*/g , '');
}
if (vl_repasse == ''){
vl_repasse = 0.0;
}else{
vl_repasse = vl_repasse.replace(/\./g , '*');
vl_repasse = vl_repasse.replace(',', '.');
vl_repasse = vl_repasse.replace(/\*/g , '');
}
vl_final = parseFloat(vl_repasse) + parseFloat(vl_contrapartida);
vl_final_formatado = vl_final.toString().replace('.', ',');
vl_final_formatado = vl_final_formatado.replace(',', '');
vl_final_formatado = moeda_format(vl_final_formatado);
document.getElementById('valor_total').value = vl_final_formatado;
}