javascript - seleccionar - Verifique si la opción está seleccionada con jQuery, si no selecciona un valor predeterminado
seleccionar un option de un select javascript (18)
Aquí está mi función cambiando la opción seleccionada. Funciona para jQuery 1.3.2.
function selectOption(select_id, option_val) {
$(''#''+select_id+'' option:selected'').removeAttr(''selected'');
$(''#''+select_id+'' option[value=''+option_val+'']'').attr(''selected'',''selected'');
}
Con jQuery, ¿cómo verifica si hay una opción seleccionada en un menú de selección y, de no ser así, asigna una de las opciones seleccionadas?
(La selección se genera con un laberinto de funciones de PHP en una aplicación que acabo de heredar, por lo que esta es una solución rápida, mientras que me ocupo de ellas :)
Cambie el evento en el cuadro de selección para disparar y, una vez que lo haga, simplemente tire del atributo id de la opción seleccionada:
$("#type").change(function(){
var id = $(this).find("option:selected").attr("id");
switch (id){
case "trade_buy_max":
// do something here
break;
}
});
Encontré una buena forma de verificar si la opción está seleccionada y selecciono un valor predeterminado cuando no lo está.
if(!$(''#some_select option[selected="selected"]'').val()) {
//here code if it HAS NOT selected value
//for exaple adding the first value as "placeholder"
$(''#some_select option:first-child'').before(''<option disabled selected>Wybierz:</option>'');
}
Si #some_select no tiene la opción seleccionada por defecto, entonces .val () no está definido
Esta pregunta es antigua y tiene muchas vistas, así que solo lanzaré algunas cosas que ayudarán a algunas personas, estoy seguro.
Para verificar si un elemento seleccionado tiene algún elemento seleccionado:
if ($(''#mySelect option:selected'').length > 0) { alert(''has a selected item''); }
o para comprobar si una selección no tiene nada seleccionado:
if ($(''#mySelect option:selected'').length == 0) { alert(''nothing selected''); }
o si estás en un bucle de algún tipo y quieres comprobar si el elemento actual está seleccionado:
$(''#mySelect option'').each(function() {
if ($(this).is('':selected'')) { .. }
});
para comprobar si un elemento no está seleccionado mientras está en un bucle:
$(''#mySelect option'').each(function() {
if ($(this).not('':selected'')) { .. }
});
Estas son algunas de las maneras de hacer esto. jQuery tiene muchas formas diferentes de lograr lo mismo, por lo que normalmente solo eliges cuál parece ser la más eficiente.
Estaba buscando algo similar y encontré esto:
$(''.mySelect:not(:has(option[selected])) option[value="2"]'').attr(''selected'', true);
Esto encuentra todos los menús de selección en la clase que aún no tienen una opción seleccionada, y selecciona la opción predeterminada ("2" en este caso).
Intenté usar :selected
lugar de [selected]
, pero eso no funcionó porque siempre hay algo seleccionado, incluso si nada tiene el atributo
Este fue un script rápido que encontré que funcionó ... El resultado se asigna a una etiqueta.
$(".Result").html($("option:selected").text());
Mira el selectedIndex select
elemento select
. Por cierto, eso es algo simple de DOM, no específico de JQuery.
No hay necesidad de usar jQuery para esto:
var foo = document.getElementById(''yourSelect'');
if (foo)
{
if (foo.selectedIndex != null)
{
foo.selectedIndex = 0;
}
}
Si bien no estoy seguro de qué es exactamente lo que quieres lograr, este código me funcionó.
<select id="mySelect" multiple="multiple">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
<script type="text/javascript">
$(document).ready(function() {
if (!$("#mySelect option:selected").length) {
$("#mySelect option[value=''3'']").attr(''selected'', ''selected'');
}
});
</script>
Si necesita marcar explícitamente cada opción para ver si alguna tiene el atributo "seleccionado", puede hacer esto. De lo contrario, utilizando la option:selected
obtendrá el valor para la primera opción predeterminada.
var viewport_selected = false;
$(''#viewport option'').each(function() {
if ($(this).attr("selected") == "selected") {
viewport_selected = true;
}
});
Ustedes están haciendo demasiado para seleccionar. Solo seleccione por valor:
$("#mySelect").val( 3 );
Ya encontré el http://www.texotela.co.uk/code/jquery/select/ mencionado, que me permitió resolverlo así:
$(document).ready(function(){
if ( $("#context").selectedValues() == false) {
$("#context").selectOptions("71");
}
});
La respuesta de lencioni es lo que yo recomendaría. Puede cambiar el selector de la opción (''#mySelect option:last'')
para seleccionar la opción con un valor específico usando " #mySelect option[value=''yourDefaultValue'']
". Más sobre los selectores .
Si está trabajando extensamente con listas de selección en el cliente, consulte este complemento: http://www.texotela.co.uk/code/jquery/select/ . Eche un vistazo a la fuente si desea ver algunos ejemplos más de trabajo con listas de selección.
¡Fácil! El predeterminado debería ser la primera opción. ¡Hecho! Eso te llevaría a JavaScript discreto, porque JavaScript no es necesario :)
$("#select_box_id").children()[1].selected
Esta es otra forma de comprobar si una opción está seleccionada o no en jQuery. Esto devolverá Booleano (Verdadero o Falso).
[1] es el índice de la opción de cuadro de selección
$("option[value*=''2'']").attr(''selected'', ''selected'');
// 2 for example, add * for every option
<script type="text/javascript">
$(document).ready(function() {
if (!$("#mySelect option:selected").length)
$("#mySelect").val( 3 );
});
</script>
if (!$("#select").find("option:selected").length){
//
}