2010-10-30 10 views
5

HTML5 nos brinda algunos elementos de entrada nuevos para jugar, como <input type=number>. Esto renderiza (en Chrome) como un cuadro de texto con dos botones de ciclo dentro del cuadro de texto, para incrementar y disminuir el valor numérico dentro del cuadro.Evento para detectar el cambio de un control de número HTML5 en Webkit/Chrome?

Para un proyecto de hobby personal, estoy usando este control. Sin embargo, estoy atascado con un problema:

¿Hay alguna manera de detectar el valor que se cambia mediante un evento javascript? Esperaba que se disparara el evento onChange, pero no tuve tanta suerte. Además, onClick solo se activa cuando se hace clic en el contenido del cuadro de texto, no cuando se hace clic en los botones del ciclo.

¿Alguna idea? (Aparte de: bueno, es formularios HTML5, no esperan nada a trabajar todavía!)

Editar: Como mikerobi señala a continuación, el evento onChange se desencadena tan pronto como el elemento pierde el foco. Todavía no es exactamente lo que estoy buscando, ¡así que otros comentarios y sugerencias son bienvenidos!

Respuesta

6

Resultado del informe de error: No se soluciona, porque el evento input se activa cuando se presionan esos botones. Es parte de las especificaciones de HTML5. Entonces el problema fue resuelto, gracias a la sugestión de mikerobi de presentar el informe.

+1

¿Esto funciona para usted en Safari? Estoy usando Safari 5.0.3 (mac) y el evento de entrada se activa solo cuando cambio el número en el cuadro de texto, no cuando hago clic en esos botones. – expora

+0

Safari v5.0.4 no desencadena un evento 'change' incluso cuando difumina la entrada y no activa un evento' input' al hacer clic en los spinners. Parece ser un error de Safari con ''. – Phrogz

+0

Tenga en cuenta, sin embargo, que el comportamiento es correcto en las últimas compilaciones nocturnas de WebKit, por lo que, con el tiempo, esta corrección debe llegar a Safari. – Phrogz

2

El evento onChange se activa cuando la caja pierde el foco, pero probablemente ya lo sepa.

El HTML5 especifica que una entrada de número debe ser un cuadro de texto o un control giratorio, pero la especificación no parece tener ninguna guía sobre cómo debería verse o actuar un dispositivo, dejando esas decisiones a los proveedores del navegador.

Parece que en Mac Safari, los botones giratorios responden a los eventos de clic, es posible que desee presentar un informe de error de Chrome, sospecho que fue solo un descuido.

+0

Hola Mikerobi - sí, debería haber agregado que ya encontré el cambio en desenfoque ... gracias por mencionarlo. Iré a archivar ese informe de error, ¡gracias! – kander

+0

¿Qué Safari estás usando? Mine (5.0.2 en Windows) no admite el tipo de número en absoluto, y lo presenta como un cuadro de texto sin formato:/ – kander

+0

@Kander, 5.0.2 en una Mac. – mikerobi

2

$ .click() funciona bien. Si hace clic y lo mantiene, no lo hace hasta que lo suelte.

Cuestiones relacionadas