Por alguna razón, no puedo hacer que esto funcione.¿Cómo configuro dinámicamente la opción seleccionada de una lista desplegable usando JQuery, Javascript y html?
Mi lista de opciones está poblada de forma dinámica utilizando estos scripts:
function addOption(selectId, value, text, selected) {
var html = '<option value="'+value+'">'+text+'</option>';
if (selected == "on") {
html = '<option value="'+value+'" selected="selected">'+text+'</option>';
}
$('#'+selectId).append(html);
}
function addSalespersonOption(id, name, defsales) {
addOption('salesperson', id, name, defsales);
}
Aquí es el html:
td class="text-r"><label for="salesperson">Salesperson:</label></td>
<td>
<select id="salesperson">
<option value="">(select)</option>
</select>
</td>
Hasta el momento, la salida es:
<option value="1266852143634" selected="selected">Eric Hunt</option>
Los espectáculos DOM esto:
index 2
disabled false
value "1266852143634"
text "Eric Hunt"
selected false
defaultSelected true
Pero por alguna razón, cuando se carga la página, el menú desplegable no muestra a Eric Hunt como preseleccionado. Tampoco es nada por el estilo.
cómo puedo obtener "selected true" en lugar de "defaultSelected true".
EDIT: Como resultado, el código anterior funciona perfectamente, gracias a la ayuda de deceze y respuestas rosscj2533 's desde abajo. La única razón por la que no funciona para mí es que encontré un código de rubí que sobrescribía los elementos seleccionados.
Gracias por la ayuda de todos, en este
Saludos
Su función 'addOption' parece bastante raro. La primera vez que lo llamas como una función, la segunda vez que lo pasas a '$()' como un objeto, es probablemente donde está tu problema. Solo para asegurarme de que entiendo lo que quieres hacer: estás tratando de insertar una nueva opción en un elemento 'select' existente y seleccionar esa opción, ¿verdad? – deceze
La función addSalespersonOption (id, name, defsales) { addOption ('vendedor', id, nombre, defsales); está generando dinámicamente una lista de opciones de datos almacenados que se utilizarán en el elemento de selección. La declaración if fue mi intento de determinar si una de esas opciones se mostrará como la selección predeterminada en el elemento de selección. como lo haríamos si codificáramos el elemento seleccionado.