289 votos

Formulario HTML readonly SELECCIONAR etiqueta de entrada/

De acuerdo a las especificaciones HTML, select tag en HTML no tiene un readonly de atributo, solo un disabled de atributo. Así que si quieres mantener al usuario de cambiar el menú desplegable, usted tiene que utilizar disabled.

El único problema es que la movilidad de formulario HTML entradas no se incluirán en el POST / GET datos.

¿Cuál es la mejor manera de emular la readonly atributo select etiqueta, y aún así obtener los datos POST?

255voto

Max Puntos 9361

Usted debe mantener el select elemento disabled , sino también añadir otra oculta input con el mismo nombre y valor.

Si usted vuelva a activar la SELECCIONE, debe copiar el valor de la entrada oculto en un evento onchange.

55voto

Kevin Puntos 57797

Puede volver a habilitar el objeto seleccione enviar.

32voto

Grant Wagner Puntos 14085
<select id="countries" onfocus="this.defaultIndex=this.selectedIndex;" onchange="this.selectedIndex=this.defaultIndex;">
<option value="1">Country1</option>
<option value="2">Country2</option>
<option value="3">Country3</option>
<option value="4">Country4</option>
<option value="5">Country5</option>
<option value="6">Country6</option>
<option value="7" selected="selected">Country7</option>
<option value="8">Country8</option>
<option value="9">Country9</option>
</select>

Probado y funcionando en IE 6, 7 y 8b2, Firefox 2 Y 3, Opera 9.62, Safari 3.2.1 para Windows y Google Chrome.

24voto

Simple jQuery solución

jQuery('select.readonly option:not(:selected)').attr('disabled',true);

10voto

epeleg Puntos 2346

Sin embargo, otro más contemporáneo opción (sin juego de palabras) es desactivar todas las opciones del elemento select, a continuación, el seleccionado.

tenga en cuenta que esta es una característica de HTML 4.0 y ie 6,7,8 beta 1 parecen no respetar esto.

http://www.gtalbot.org/BrowserBugsSection/MSIE7Bugs/OptionDisabledSupport.html

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X