Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2007, 07:59
k-seraph
 
Fecha de Ingreso: julio-2004
Mensajes: 194
Antigüedad: 20 años, 6 meses
Puntos: 1
Agregar Campos formulario con eventos de forma dinamica

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
__________________
"Hay Algo Activo en el piso de Abajo..."

K-Seraph Blog