Uso de mootols getElements ('[seleccionado] para encontrar si se selecciona alguna opción
-
27-10-2019 - |
Pregunta
¿Alguien puede ayudarme a encontrar si hay alguna opción seleccionada? Actualmente tengo esto
var Selected = $$('myslected_id').getElements('[selected]') ;
if(Selected==null){
$('selectedresult').set('text','Nothing Selected');
}else{
$('selectedresult').set('text','Something Selected');
}
<div id="selectedresult"></div>
<select id="myslected_id" name="myslected_name" multiple="multiple">
<optgroup label="mylabel">
<option value="1">Value1</option>
<option value="2" selected="selected">Value1</option>
<option value="3">Value2</option>
</optgroup>
</select>
Formulario actual seleccionar debe emitir algo seleccionado
¡Gracias!
Solución
En primer lugar, escribiste mal 'myselected_id' en tu <select>
<select id="myselected_id" name="myselected_name" multiple="multiple">
<optgroup label="mylabel">
<option value="1">Value1</option>
<option value="2" selected="selected">Value1</option>
<option value="3">Value2</option>
</optgroup>
</select>
Sección de Mootools
var Selected = $$('#myselected_id option[selected]');
if (Selected.length == 0) {
$('selectedresult').set('html', 'nothing selected');
} else {
$('selectedresult').set('html', 'Something Selected');
}
Aquí está el JsfiddleEsto atraerá todos los elementos de opciones seleccionados. Su comprensión del uso de $$ no es correcta. Lea esta sección. Además, una matriz vacía no es igual a NULL en JavaScript.
Otros consejos
Creo que estarías mejor usando el ser seleccionado método. Obtiene ... las cosas seleccionadas. :)
¡Gracias Kyjy112! Yo también financié otra forma, pero la tuya es más corta, sí, todavía estoy mezclando la matriz PHP con JS, Beginer, esto es lo que se me ocurrió VAR
MySelection = $('myselectid');
MySelection.addEvent('domready', function(){//domready to use on load
if(MySelection.getElement("[selected]")) {
//$("oresultdiv").set("text", MySelection.getElement(":selected").text)
$("resultdiv").set("text", "Something")
}else {
$("resultdiv").set("text", "nothing")
}
});