Comunidad de diseño web y desarrollo en internet online

jquery keypress problemas

Citar            
MensajeEscrito el 16 May 2013 10:16 pm
tengo el siguiente problema al precionar la tecla enter cumple con enviar chat_enter() pero este se envia muchas veces como si la tecla estuviese precionada...

Que puedo hacer.?

Código HTML :

<input placeholder="chat" onkeypress="chat_enter();" id="ctrltext">


Código Javascript :

function chat_enter() {
   $(document).keypress(function(event) {
      if(event.which == 13) {
         var data = $("#ctrltext").val();
         $("#data").append(data);
         document.getElementById("ctrltext").value = "";
      }
   });
}

Por js_toni

93 de clabLevel



Genero:Masculino  

programar

firefox
Citar            
MensajeEscrito el 17 May 2013 01:12 am
Supongo que es porque cada vez que se presiona una tecla, le estas asignando el evento a document, por ende si presionas una tecla sobre ese input y después presionas otra tecla en otra parte que no sea el input, el evento se dispara igual.

La solución sería:

Código Javascript :

function chat_enter(event) {
      if(event.which == 13) {
         var data = $("#ctrltext").val();
         $("#data").append(data);
         document.getElementById("ctrltext").value = "";
      }
}


Saludos!

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 17 May 2013 01:35 am
la solución mas sencilla es sacar ese javascript del html y manejar todo desde un archivo aparte así:

Código Javascript :


   $('#ctrltext').keypress(function(event) {
      if(event.which == 13) {
         $this = $(this);
         var data = $this.val();
         $("#data").append(data);
         $this.value = "";
      }
   });

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 17 May 2013 01:36 am
pero el event de la funcion no estaria haciendo nada porq no esta declarada ninguna parte :(

<input placeholder="chat" onkeypress="chat_enter();" id="ctrltext">

Por js_toni

93 de clabLevel



Genero:Masculino  

programar

firefox
Citar            
MensajeEscrito el 17 May 2013 12:27 pm
La solución de HtrMancera es totalmente válida, le esta asignando el evento por código JS, ya no necesitarías ese onkeypress.

Saludos!

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.