¿Cómo puedo verificar si un usuario ha seleccionado algo de un <select>
campo en HTML5?
Veo <select>
que no admite el nuevo required
atributo ... ¿tengo que usar JavaScript entonces? ¿O hay algo que me falta? : /
javascript
html
select
required
Mate
fuente
fuente
selectedIndex
.Respuestas:
Obligatorio : tener el primer valor vacío: el trabajo obligatorio funciona con valores vacíos
Prerrequisitos : html5 DOCTYPE correcto y un campo de entrada con nombre
Según la documentación (el listado y negrita es mío)
fuente
El
<select>
elemento admite elrequired
atributo, según la especificación:¿Qué navegador no respeta esto?
(Por supuesto, debe validar en el servidor de todos modos, ya que no puede garantizar que los usuarios tengan habilitado JavaScript).
fuente
Puede usar el
selected
atributo para el elemento de opción para seleccionar una opción de forma predeterminada. Puede usar elrequired
atributo para el elemento select para asegurarse de que el usuario seleccione algo.En Javascript, puede verificar la
selectedIndex
propiedad para obtener el índice de la opción seleccionada, o puede verificar lavalue
propiedad para obtener el valor de la opción seleccionada.De acuerdo con la especificación HTML5,
selectedIndex
"devuelve el índice del primer elemento seleccionado, si lo hay, o -1 si no hay un elemento seleccionado. Yvalue
" devuelve el valor del primer elemento seleccionado, si lo hay, o la cadena vacía si hay sin elemento seleccionado ". Entonces, si se seleccionaIndex = -1, entonces sabes que no han seleccionado nada.fuente
-1
. Lo siento, no aclare en los comentarios primero.Sí, está funcionando:
tienes que mantener la primera opción en blanco.
fuente
fuente
primero debe asignar un valor en blanco en la primera opción. es decir, seleccione aquí. Solo se requerirá que funcione.
fuente
Ponga el valor del primer elemento del cuadro de selección en blanco.
Entonces, cuando publicas el FORMULARIO, obtienes un valor en blanco y, de esta manera, sabrás que el usuario no ha seleccionado nada del menú desplegable.
fuente
Debe establecer el
value
atributo deoption
en la cadena vacía:select
devolverá lovalue
seleccionadooption
al servidor cuando el usuario presionesubmit
el botónform
. Un vacíovalue
es lo mismo que unatext
entrada vacía -> elevar elrequired
mensaje.w3schools
fuente
prueba esto, esto va a funcionar, he intentado esto y esto funciona.
fuente
Funciona perfectamente bien si el valor de la primera opción es nulo. Explicación: El HTML5 leerá un valor nulo al enviar el botón. Si no es nulo (atributo de valor), se supone que el valor seleccionado no es nulo, por lo tanto, la validación habría funcionado, es decir, verificando si ha habido datos en la etiqueta de opción. Por lo tanto, no producirá el método de validación. Sin embargo, supongo que el otro lado queda claro, si el atributo de valor se establece en nulo, es decir (valor = ""), HTML5 detectará un valor vacío en la primera opción o más bien en la opción seleccionada por defecto, dando así el mensaje de validación. Gracias por preguntar. Feliz de ayudar. Me alegra saber si lo hice.
fuente
En html5 puedes hacerlo usando la expresión completa:
No sé por qué la expresión corta no funciona, pero prueba esta. Se resolverá
fuente
Prueba esto
fuente
También puedes hacerlo dinámicamente con JQuery
Conjunto requerido
Eliminar requerido
fuente