2011-04-08 43 views

Respuesta

7

La única forma de tener una opción predeterminada es haber seleccionado en la etiqueta de opción.

<SELECT> 
<OPTION>Something 
<OPTION SELECTED>Something Else 
+3

Hrmph. Eso va en contra de cómo funcionan todos los demás elementos de formulario: /. – crazy2be

+1

@ loco: permite que el elemento tenga múltiples valores seleccionados. @doc: su teoría sobre el atributo de valor es completamente incorrecta. – BalusC

+0

@BalusC. Estoy de acuerdo. La etiqueta de selección no tiene una opción de valor. He editado mi respuesta. –

17

Se utilizan selected atributo en un elemento option opción por defecto para especificar.

<select> 
    <option value="1">Something</option> 
    <option value="2" selected="selected">Something else</option> // this is default 
</select> 

select elements do not have a value attribute.

+0

Hrm. Tendré que establecer el valor predeterminado usando javascript, entonces, las plantillas de bigote no parecen permitir la prueba de igualdad dentro de las plantillas ... De todos modos, ¡gracias por tu respuesta! – crazy2be

+0

@ crazy2be podría compartir el código javascript que solía hacer esto. – nanospeck

+0

@nanospeck: ya no tengo el código exacto, desafortunadamente. Me imagino que también podría haber usado un truco como https://github.com/crazy2be/wfdr-example/blob/master/shared/tmpl/base/chunks/menu en la plantilla del bigote (es decir, definir cada valor posible en un mapear o estructurar y verificar la existencia, en lugar de hacer una comparación). – crazy2be

1

El elemento <select> no tiene un atributo value modo que se ignora. Por lo tanto, tiene una única selección <select> y ninguno de sus elementos <option> tiene el atributo selected, lo que significa que el primer <option> se toma como la selección predeterminada.

0

Reaccionar JS

Algunas implementaciones de codificación tales como ReactJS le permiten utilizar un atributo value con la etiqueta <select> por lo que este podría ser un código perfectamente válido:

<select value="2"> 
    <option value="1">Something</option> 
    <option value="2">Something else</option> 
</select> 

HTML con Minimización Atributo:

Por supuesto, normalmente querrá especificar el valor en estado, por lo que tha t es actualizable.

Sin embargo, si está utilizando puramente HTML debe utilizar el atributo selected en su etiqueta <option> de la siguiente manera:

<select> 
    <option value="1">Something</option> 
    <option value="2" selected>Something else</option> 
</select> 

HTML con especificación de atributo completo:

Los usos anteriores atribuyen minimización, pero también puede especificar el formulario completo si lo desea:

<select> 
    <option value="1">Something</option> 
    <option value="2" selected="selected">Something else</option> 
</select> 
0

Sé que esta publicación es bastante antigua, pero en caso de que alguien más tenga dificultades con esto, puede implementar la funcionalidad que busca utilizando jquery.

El código completo utilizando php sería algo como esto

PHP

if ($_SERVER['REQUEST_METHOD']== "POST") { 
$thing = $_POST['things']; 
} else { 
$thing =""; 
} 

HTML

<select name='things' value="<?php echo $thing; ?>"> 
    <option value="1">Something</option> 
    <option value="2">Something else</option> 
</select> 

JQUERY

$(function() { 
    $("select[value]").each(function() { 
     $(this).val(this.getAttribute("value")); 
    }); 
}); //end document ready 

Esto permitirá que las opciones de selección elegidas por el usuario permanezcan seleccionadas después de que la página se haya vuelto a cargar por correo en lugar de devolver a los valores predeterminados.

Cuestiones relacionadas