Uso de Prototype: ¿cómo observo el campo de entrada para el retorno de carro?

Estoy usando el Prototipo de la biblioteca JS: ¿cómo puedo ver un campo de entrada de texto y cuando se presiona regresar, alertar al usuario sobre el contenido del campo? (No hay <formulario> en la página, solo el campo de entrada).

Esto es más o menos lo que quiero hacer:

Enter something: <input type='text' id='myfield'>

<script>
  if([keydown event in #myfield]) {
     alert("You typed: "+[contents of #myfield]);
  }
</script>

Gracias.

preguntado el 12 de junio de 12 a las 21:06

¿El usuario está usando una máquina de escribir? Supongo que quiere decir que desea verificar cuándo el usuario ha presionado una tecla Intro, aunque supongo que podría verificar si el texto contiene \r caracteres después de cualquier cambio. -

LOL, que alguien le diga a Apple que la Mac no es una máquina de escribir, ya que mi teclado estándar de Mac dice "return" (y no "enter") en la tecla enter. ;-) De todos modos, sí, la idea es monitorear las pulsaciones de teclas y actuar cuando el usuario ingresa... (¡o tira de la barra de retorno de carro! ;-) Actualicé mi pregunta con una pequeña muestra de metacódigo para aclarar. -

¿Cuál es el comportamiento deseado cuando un usuario golpea Ctrl+V (o ⌘+V para los usuarios de mac) y existe un retorno de carro en el contenido pegado? - en retrospectiva después de darte cuenta de que estás usando un input:text elemento, esto no será un problema. -

3 Respuestas

$('myfield').observe('keypress', function(event){
    if(event.keyCode == Event.KEY_RETURN)
        alert($('myfield').value);
});​

Puede encontrar una demostración simple en este jsFiddle

Respondido el 12 de junio de 12 a las 21:06

Comprar http://prototypejs.org/api/event

Puede obtener una mejor respuesta si da un ejemplo.

Respondido el 12 de junio de 12 a las 21:06

¿Por qué no monitorear submit?

Para elemento <input id="signinForm"/>:

Event.observe('signinForm', 'submit', checkForm);
function checkForm() { //do something }`

Más información se encuentra en los documentos aquí:

http://prototypejs.org/api/event/observe

Respondido el 12 de junio de 12 a las 21:06

No hay <formulario> en la página, por lo que no hay evento de envío de <formulario>. - Eric

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.