Foros del Web » Programando para Internet » Javascript »

Intentando mesclar dos codigos, me ayudan?

Estas en el tema de Intentando mesclar dos codigos, me ayudan? en el foro de Javascript en Foros del Web. hola chicos, tengo dos codigos, que utilizan la manipulacion de las teclas.... Uno: dentro de un FORM utiliza el enter(13) , para saltar entre campos ...
  #1 (permalink)  
Antiguo 16/02/2011, 17:03
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 9 meses
Puntos: 89
Intentando mesclar dos codigos, me ayudan?

hola chicos, tengo dos codigos, que utilizan la manipulacion de las teclas....
Uno: dentro de un FORM utiliza el enter(13) , para saltar entre campos en un determinado orden.
Y el otro: al backspace(8) no lo deja retrocedes pero si borrar dentro de un textarea o input Text.

el problema que el segundo (backspace '8') anula el primero, y al apretar enter, se envia el form. :S


ak estan los dos codigos.


Manipulando el enter:
Código Javascript:
Ver original
  1. nextfield = "can1";
  2. netscape = "";
  3. ver = navigator.appVersion; len = ver.length;
  4. for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
  5. netscape = (ver.charAt(iln+1).toUpperCase() != "C");
  6. function keyDown(DnEvents) {
  7. k = (netscape) ? DnEvents.which : window.event.keyCode;
  8. if (k == 13) {
  9. if (nextfield == 'done') return true;
  10. else {
  11. eval('document.venta.' + nextfield + '.focus()');
  12. return false;
  13.       }
  14.    }
  15. }
  16. document.onkeydown = keyDown;
  17. if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);

Manipulando el backspace:
Código Javascript:
Ver original
  1. if (typeof window.event == 'undefined'){
  2.    document.onkeypress = function(e){
  3.     var test_var=e.target.nodeName.toUpperCase();
  4.     if (e.target.type) var test_type=e.target.type.toUpperCase();
  5.     if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA'){
  6.       return e.keyCode;
  7.     }else if (e.keyCode == 8){
  8.       e.preventDefault();
  9.     }
  10.    }
  11.  }else{
  12.    document.onkeydown = function(){
  13.     var test_var=event.srcElement.tagName.toUpperCase();
  14.     if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
  15.     if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA'){
  16.       return event.keyCode;
  17.     }else if (event.keyCode == 8){
  18.       event.returnValue=false;
  19.     }
  20.    }
  21.  }

La verdad no me llevo bien con javascript, y los dos codigo fueron sacado de la web, y como no los hice yo, me pierdo y no se donde modificar para poder utilizarlos, en la misma hoja.

me imagino que problema viene al llamar document.onkeydown

Agradesco toda la ayuda xD
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 17/02/2011, 07:34
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Intentando mesclar dos codigos, me ayudan?

Saludos:
Yo encuentro dos posibles problemas pero puedo estar equivocado.
1. Dependiendo el browser que estés ocupando el 13 va actuar de diferente manera, al presionar ENTER, si estas posicionado automáticamente el el botón enviar dentro de la pagina, el formulario de enviara, tomando en cuenta que 13 = ENTER, forma de saber si el browser te toma el botón ENTER como primera opción es dar TABS para cambiar la opción, si el problema e ese se puede dar una solución sencilla al darle una posición mayor al boto para que sea detectado como ultima opción.

2. Lo otro seria la sentencia KEYPRESS, eso se refiere que al presionar una tecla, sea cual sea haga una acción determinada.

Yo probaría en primer ligar si la funciona del 13 esta funcionando correctamente, activando solo esa función, luego probaría la otra por separado.

Suerte
  #3 (permalink)  
Antiguo 17/02/2011, 13:00
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 9 meses
Puntos: 89
Respuesta: Intentando mesclar dos codigos, me ayudan?

ambas funciones por serpado, funcionan correctamente. :S
Y sin importar el orden, la funcion de backspace predomina. dejando sin funcionar la del enter.
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: codigos, dos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.