Função não aceita parâmetro
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.onkeydown = keyFormatMoeda; <<<----- FUNÇÃO QUE NÃO FUNCIONA COM PARÂMETROS
//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){
if(teclapres == null || teclapres == "undefined")
{
var tecla = -1;
}else
{
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){
if(tam < tammax && tecla != 8)
{
tam = vr.length + 1;
}
if(tecla == 8){
tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105){
if(tam <= 2)
{
campo.value = vr;
}if((tam > 2) && (tam <= 5))
{
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}if((tam >= 6) && (tam <= 8))
{
campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}if((tam >= 9) && (tam <= 11))
{
campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}if((tam >= 12) && (tam <= 14))
{
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);
}if((tam >= 15) && (tam <= 17))
{
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;} else {
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){
// open a blank window
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
Discussão (2)
Carregando comentários...