Verwenden von Mootools GetElements ('[ausgewählt], um zu finden, ob eine Option ausgewählt ist
-
27-10-2019 - |
Frage
Kann mir bitte jemand helfen, herauszufinden, ob es eine Option ausgewählt ist
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>
Aktuelle Formularauswahl sollte etwas ausgewählt ausgeben
Vielen Dank!
Lösung
Zuallererst haben Sie "mySelected_id" falsch geschrieben <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>
Mootools Abschnitt
var Selected = $$('#myselected_id option[selected]');
if (Selected.length == 0) {
$('selectedresult').set('html', 'nothing selected');
} else {
$('selectedresult').set('html', 'Something Selected');
}
Hier ist der JsfiddleDadurch werden alle ausgewählten Optionenelemente erfasst. Ihr Verständnis der Nutzung für $$ ist nicht korrekt. Bitte lesen Sie diesen Abschnitt. Außerdem entspricht ein leeres Array in JavaScript nicht Null.
Andere Tipps
Ich denke, es geht dir besser damit, das zu benutzen selected Methode. Es bekommt ... das ausgewählte Zeug. :)
Danke Kyjy112! Ich finanziere auch einen anderen Weg, aber deins ist kürzer, ja, ich mische immer noch PHP -Array mit JS, Anfänger, das habe ich mich mit Var ausgedacht
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")
}
});