Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos,
Estou utilizando uma função javascript, que não é minha. Ela insere, em uma tabela, três campos text, cada vez que um botão é pressionado.
Qualquer função que eu chame para mascarar os campos funciona (como escrito no código abaixo), desde que não sejam passados parâmetros nestas funções. Acontece que tenho que utilizar uma máscara para o campo que recebe valores de moeda e a função que tenho disponível aqui envia valores como parâmetros.
Alguém poderia me ajudar????
Eis a função:
<script language="javascript" type="text/javascript">
function addRowToTable()
{
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
// if there's no header row in the table, then iteration = lastRow + 1
var iteration = lastRow;
var row = tbl.insertRow(lastRow);
// left cell
var cellLeft = row.insertCell(0);
var textNode = document.createTextNode(iteration);
cellLeft.appendChild(textNode);
// right cell
var cellRight = row.insertCell(1);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'tvalores[]' + iteration);
el.setAttribute('id', 'txtvalores' + iteration);
el.setAttribute('size', '7');//el.onkeypress = keyChkNumbers2;
cellRight.appendChild(el);
var cellRight = row.insertCell(1);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'thistorico[]' + iteration);
el.setAttribute('id', 'txthistorico' + iteration);
el.setAttribute('size', '90');
el.onkeypress = keyPressTest;
cellRight.appendChild(el);
var cellRight = row.insertCell(1);
var el = document.createElement('input');
el.setAttribute('type', 'text');
el.setAttribute('name', 'tcod[]' + iteration);
el.setAttribute('id', 'txtcod' + iteration);
el.setAttribute('size', '3');
el.onkeypress = numberOnly;
cellRight.appendChild(el);
}
function keyFormatMoeda(campo,tammax,teclapres,caracter)var tecla = -1;
}var tecla = teclapres.keyCode;
}
if(caracter == null || caracter == "undefined")caracter = ".";
}
vr = campo.value;
if(caracter != "")vr = troca(vr,caracter,"");
}
vr = troca(vr,"/","");
vr = troca(vr,",","");
vr = troca(vr,".","");
tam = vr.length;
if(tecla > 0)tam = vr.length + 1;
}
if(tecla == 8)tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)campo.value = vr;
}campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
}
function maskKeyPress(objEvent)var iKeyCode;
iKeyCode = objEvent.keyCode;
if(iKeyCode>=48 || iKeyCode<=57) return true;
return false;
}
function numberOnly()if (event.keyCode < 45 || event.keyCode > 57)
event.returnValue = false;
}
function keyChkNumbers2()if (event.keyCode < 45 || event.keyCode > 57 && event.keyCode == 44)
event.returnValue = false;
}
function keyPressTest(e, obj)var validateChkb = document.getElementById('chkValidateOnKeyPress');
if (validateChkb.checked) {
var displayObj = document.getElementById('spanOutput');
var key;
if(window.event) {
key = window.event.keyCode;
}
else if(e.which) {
key = e.which;
}
var objId;
if (obj != null) {
objId = obj.id;objId = this.id;
}
displayObj.innerHTML = objId + ' : ' + String.fromCharCode(key);
}
}
function removeRowFromTable()var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
if (lastRow > 2)
tbl.deleteRow(lastRow - 1);
}
function openInNewWindow(frm)var aWindow = window.open('', 'TableAddRowNewWindow',
'scrollbars=yes,menubar=yes,resizable=yes,toolbar=no,width=400,height=400');
// set the target to the blank window
frm.target = 'TableAddRowNewWindow';
// submit
frm.submit();
}
</script>
Obrigado
Ainda estou tentado acertar este código...
Ainda não consegui encontrar uma solução para este caso.
Eu preciso de um sistema em que o usuário possa incluir quantos campos ele precisar. Para isso, estou utilizando javascript, que é esse código que colei no post anterior. Só que não é só isso: Também é necessário que haja uma máscara no campo valor. O código de máscara que eu tenho não funciona com o javascript que insere os campos de acordo com o usuário, por causa da passagem de parâmetros.
Alguém será que teria uma solução para este problema?
Obrigado.