Hola.
Estoy tratando de agregar unos campos a un formulario de forma dinamica, los campos se agregan pero necesito que algunos tengan en evento OnKeyPress el cual no funciona.
Mi Codigo
Código:
var n=1;
function add(form) {
n++;
tabla = document.getElementById('tabla');
fila = document.createElement('tr');
fila.id='row_'+n;
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
code=document.createElement('input');
code.type='text';
code.name='codigo_'+n;
code['OnKeyPress'] = function() {return OnlyNumber(event)}
code.size='10';
code.maxLength='10';
// code['blur'] = function() {return acceptNum(event)};
celda.appendChild(code);
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
art=document.createElement('input');
art.type='text';
art.name='articulo_'+n;
art.size='22';
art.readonly='readonly';
celda.appendChild(art);
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
cant=document.createElement('input');
cant.type='text';
cant.name='cantidad_'+n;
cant.size='3';
cant.maxLength='3';
cant['onkeypress'] = function() {return OnlyNumber(event)};
celda.appendChild(cant);
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
unit=document.createElement('input');
unit.type='text';
unit.name='unitario_'+n;
unit.size='10';
unit.readonly='readonly';
celda.appendChild(unit);
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
totl=document.createElement('input');
totl.type='text';
totl.name='total_'+n;
totl.size='10';
totl.readonly='readonly';
celda.appendChild(totl);
celda = document.createElement('td');
celda.align='center';
fila.appendChild(celda);
text=document.createElement('text');
text.innerHTML = "<a href=\"javascript:DeleteRow('row_"+n+"')\"> Eliminar</a>";
celda.appendChild(text);
tabla.appendChild(fila);
form.registros.value=n;
}
trato de llamar el evento usando
code['OnKeyPress'] = function() {return OnlyNumber(event)} pero no me funciona.
Tambien trata llamandolo
code.OnKeyPress = function() {return OnlyNumber(event)} o si no
code.OnKeyPress = 'return OnlyNumber(event)' los cuales obviamente tampoco funcionaron
el problema no esta en la funcion OnlyNumber() porque si lo llamo de forma tradicional funciona, pero igual aqui esta el codigo
Código:
function OnlyNumber(evt){
var nav4 = window.Event ? true : false;
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57));
}
Alguien ve el error?
Saludos y desde ya gracias