En HTML 5, podemos marcar las entradas como required
y luego seleccionarlas con el pseudo selector [required]
en CSS. Pero solo quiero diseñarlos cuando intenten enviar el formulario sin completar un elemento obligatorio. ¿Hay un selector para esto? ¿Qué tal el pequeño cuadro de mensaje que aparece?HTML5 Estilo de entrada requerido
Respuesta
Sí, ya que SLaks dijo que no hay un selector de CSS para hacer esto. Dudo que esto esté dentro del alcance de CSS porque CSS debería verificar el contenido de una entrada.
Su mejor opción, sin embargo, es probablemente llamar a una función de validación de JavaScript al hacer clic en un botón, en lugar de enviar el formulario. A continuación, comprobar los campos [requerido] de contenidos adecuados y, o bien enviar el formulario o resaltar los campos obligatorios que no fueron llenadas en.
jQuery tiene algunos plugins agradable que se ocupan de esto para usted http://docs.jquery.com/Plugins/validation
Puede use: selectores válidos y no válidos. Algo como esto
.field:valid {
border-color:#0f0;
}
.field:invalid {
border-color:#f00;
}
Sin embargo, esto sólo funcionará en los navegadores que soportan la validación nativa, y sólo para los campos que tengan sentido. Por lo que sé, en este momento eso solo significa Chrome (tal vez Safari, pero no lo haya verificado).
Por validación nativa me refiero a que en cromo si haces <input type="email">
el valor del campo será validado para el tipo de cadena de correo electrónico (sin javascript adicional), por lo que los estilos anteriores funcionarán. Sin embargo, si los adjuntara a un campo type="text"
, o un segundo campo de contraseña (que se supone que coincida con el primero), solo se pondría verde porque todo es válido, y en el caso de la contraseña, no hay " escribe "para eso de todos modos.
Lo que básicamente significa que para admitir todos los navegadores y, lo que es más importante, una gama más amplia de validaciones, debe recurrir a javascript, en cuyo caso asignar clases .valid/.invalid no debería ser un problema. :)
Me parece que estos están configurados en carga de la página, así que tengo el mismo problema que con '[required]'. – Xodarap
@ Xodarap, está configurado en carga de página, pero la entrada cambia de válida a inválida, por lo que funcionará perfectamente. – Johan
@Johan haciendo esto cambia el estilo solo cuando la entrada cambia entre (in) válido. No como Xodarp quiere, lo que requiere que el estilo le suceda a todas las otras cajas solo después de hacer clic en ... – will
He recurrido al uso de JS para aplicar una clase de .validated a la forma de presentar, a continuación, utilizar esa clase de estilo: fields.eg válido:
.validated input:invalid { ... }
esta manera campos no aparecer como no válido en la carga de la página, solo después de enviar el formulario. Idealmente, habría una clase pseodo aplicada al formulario en el envío.
También podría hacer algo como esto para permitir la verificación de validación en tiempo real: '$ ('input [required]') .on 'keyup', -> $ (this) .addClass ('validate-me'). off ('keyup') ' y luego agregue estilos CSS para' input [required] .validate-me: invalid' etc. – Jayphen
@Toby: suave, +1! –
Hay una pseudoclass :user-error
en el CSS Selectors 4 working draft que hará exactamente esto, disparando tanto el desenfoque de entrada como el envío de formulario.
Mientras tanto, estoy usando personalmente el increíble webshims polyfill library que cubre: error del usuario, o podría hackearlo usted mismo con algo similar a la respuesta de Toby.
input:required {
/* Style your required field */
/* Be sure to style it as an individual field rather than just add your desired styles
for a required field. */
}
Probado y probado en cromo. No lo he probado en ningún otro navegador.
¡Esta es la mejor respuesta! –
Esta solución le dará un estilo a los campos de entrada que se requieren mediante el atributo , mientras que en blanco. Los navegadores eliminarán la pseudoclase inválida al rellenar un campo obligatorio en el teclado. Las versiones recientes de Firefox aplican automáticamente algo similar a este estilo, pero Chrome y IE no lo hacen.
input[required]:invalid { box-shadow: 0 0 3px 1px red }
Inténtelo: http://jsfiddle.net/2Ph2X/
- 1. html5 tipo de entrada requerido sin un formulario. ¿Funciona?
- 2. html5 requerido y jquery submit()
- 3. HTML5: cómo usar el atributo "requerido" con un campo de entrada "radio"
- 4. Estilo Elementos HTML5
- 5. jQuery Entrada de voz HTML5
- 6. ¿Estilo de control de rango de entrada de HTML5 con CSS?
- 7. html5 entrada de fecha y hora: ¿es posible crear un estilo de presentación de valores?
- 8. Entrada de audio a través de HTML5?
- 9. html5 eventos de entrada de búsqueda
- 10. HTML5 Tipo de entrada de correo electrónico
- 11. Estilo de entrada de texto de cuidado
- 12. ¿Archivo de tipo de entrada de estilo?
- 13. HTML5 Tipo de entrada "número" en Firefox
- 14. Los elementos de entrada de estilo CSS
- 15. Detener Chrome desde el estilo de entrada de estilo automático = buscar
- 16. Definir encuadernaciones de entrada en el estilo
- 17. estilo del texto de entrada CSS
- 18. LocalStorage HTML5 para activos (hojas de estilo, JavaScript, imágenes, etc.)
- 19. Acceso de micrófono de entrada de voz HTML5
- 20. El elemento de formulario Html5 "requerido" en el iPad/iPhone no funciona
- 21. Obtener el valor de un número de entrada HTML5
- 22. Los tipos de entrada HTML5 matan la validación de jQuery
- 23. Tipo de entrada de fecha HTML5 Interferir con jQuery Datepicker
- 24. CSS entrada de estilo [type = "??"] de listas de selección
- 25. Definición de uniones de entrada dentro de un estilo
- 26. Botones de entrada de estilo para iPad y iPhone
- 27. marcador de posición VS etiqueta para la entrada en HTML5
- 28. HTML5/JS: mostrar la entrada de varios archivos en div
- 29. Renderizar asp.TextBox para tipo de entrada html5 = "fecha"
- 30. HTML5 Tipo de entrada = número elimina el cero inicial
No. Eso requiere Javascript. – SLaks
@SLaks: ¿Cuál es el punto, entonces? Funciona todo el tiempo que desee el estilo predeterminado? – Xodarap
Consulte esta pregunta para obtener más información http://stackoverflow.com/questions/5660177/styling-the-hint-on-a-html5-input-field-using-required-attribute – alpha1