MooTools - Comment utiliser getSelected()
J'essaie d'apprendre à MooTools et je suis un TOTAL javascript noobie, de sorte s'il vous plaît être gentil avec moi.
Ce que je suis attachant à faire est de changer l'état d'une personne handicapée champ de saisie (type de texte) lorsqu'une option est sélectionnée. Le code html ressemble un peu tis:
<select class="wide" id="selectBox" name="option>
<optgroup label="Common">
<option value="one">One<option>
<option value="two">Two<option>
<option value="three">Three<option>
</optgroup>
<optgroup label="Less Common">
<option value="other">Other<option>
</optgroup>
</select>
<input id="other" type="text" disabled="disabled" />
C'est ce que j'espérais, me donnerait de la valeur à vérifier dans une instruction if qui serait alors modifier l'entrée de désactivé à activé:
window.addEvent('domready', function(){
$$('#selectBox').addEvent('change',function(){
var selection = $$('#selectBox').getSelected();
alert(selection);
});
});
Lorsque le code nous exécuter (c'est à dire je choisir une autre valeur dans la case d'option) tout ce que j'obtiens est [object HTMLOptionElement]
.
La documentation sur mootools de cette méthode est des rares et dit:
De la Méthode des éléments: getSelected
Retourne les options sélectionnées d'un
sélectionner l'élément.
Returns:
* (array) An array of the selected elements.
Exemples:
HTML
<select id="country-select" name="country">
<option value="US">United States</option
<option value ="IT">Italy</option>
</select>
JavaScript
$('country-select').getSelected(); //Returns whatever the user selected.
Remarque:
Cette méthode retourne un tableau, quel que soit l'attribut multiple de l'élément select. Si la sélection est unique, il retournera un tableau à un seul élément.
Totalement déroutant!
Quelqu'un s'il vous plaît dites-moi ce que je suis absent. J'ai aussi essayé:
var selection = $$('#selectBox').getSelected().value; //and
var selection = $$('#selectBox').getSelected('value'); //and
//a WHOLE bunch of other wild ideas including
var selection = $$('#selectBox').getSelected();
alert(selection[0]);
Rien ne sort correctement. Dans certains cas-je obtenir undefined
et dans d'autres cas, j'obtiens la même [object HTMLOptionElement]
.
OriginalL'auteur tranquil.meadows | 2010-07-27
Vous devez vous connecter pour publier un commentaire.
beaucoup de choses de mal, vous ne savez pas par où commencer.
$$()
est un opérateur de collecte (alias pourdocument.getElements()
qui renvoie multiples basé sur un sélecteur) - ne convient pas à l'utilisation d'un id.vous voulez
document.id("idhere")
ou$("idhere")
pour mootools 1.2+
assurez-vous de vérifier votre balisage - vous à ne pas fermer les options, vous disposez d'un manque " d'name="option>.
getSelected est là comme une méthode comme certains sélectionne utiliser la sélection multiple afin de faire selectEl.get("valeur") ne signalent pas quelque chose de valable. tous les autres cas, .get("valeur") c'est bien.
vérifier qu'il fonctionne:
http://www.jsfiddle.net/dimitar/SmShF/
avoir du plaisir et de la lecture de la notice 🙂
Bon d'accord, c'est beaucoup de huzza combat, mais rien... j'ai tenté d'ajuster le code à utiliser un seul $ au lieu de $$: fenêtre.addEvent('domready', function(){ $('#selectProvince').addEvent('change',function(){ var sélection = $('#selectProvince'); var sel = selection[0].valeur; if(sel === "otherProvince") { alert(sel); } }); }); et il ne fonctionne pas (avec mootools). Le $$ travail. Tous les commentaires?
oui.
$("selectProvince")
- pas de # de besoin. aussi, dans le changement de rappel,this
est lié à l'sélecteur d'origine donc tous vous avez besoin estvar selectedValue = this.get("value"); $("newelement").set("value", selectedValue);
dans mootools-vous tendance à utiliser les accesseurs et mutateurs pour accéder à des propriétés comme opposés .la valeur directement. juste essayer le lien que j'ai posté sur jsfiddle et vous verrez ce que je veux dire.Merci de prendre le temps de clarifier Dimitar. Alors, si vous souhaitez utiliser le style CSS sélection, puis utiliser le $$ sinon c'est juste le string-nom de l'id/selector (sélecteur'). Eu ya. Suppose que j'ai été accroché sur jQuery style de codage. Mais une chose est - ce que si vous disposez de plusieurs éléments qui sont de types différents (id, classe, nom, etc.) qui ont la même chaîne-nom (n ° de sélectionner, de .sélectionnez, name="select", etc...). Ce qui arrive ensuite? Je sais qu'il y a un moyen de filtrer l'résultant attrapé éléments, mais ne fait pas simplement en utilisant le $$ au lieu de cela plus de sens (et moins de code)?
Une fois de plus, veux juste vous remercier pour votre temps et d'efforts de ma part, je suis bien obligé. Lire plus de votre dernière explication un peu de temps avant que je l'ai compris. Je suis ligoté dans des projets en classe, mais je suis certainement va s'asseoir après ce cours est fini et lentement et soigneusement apprendre le javascript (lynda.com et al). :o)
OriginalL'auteur Dimitar Christoff
réponse tardive mais j'ai été confronté au même problème et l'a résolu dans cette (simple) de façon Mootools:
OriginalL'auteur Salman
Si Complexe!
Vous n'avez pas besoin de faire une telle chose complexe, cela devrait suffire:
Qui devrait vous obtenir le texte sélectionné.
Mais si vous souhaitez utiliser mootools, je deviner que ce serait le travail (je ne vais pas essayer)
Aussi ce qui a quelques problèmes:
Vous n'avez pas besoin de la
name
attribut, comme c'est essentiellement la même queid
. Aussi, si vous avez les deux, alors qu'ils devraient probablement être le même. I. e.id="selectBox"
etname="selectBox
Votre
name
balise doit être fermée.Également dans votre échantillon, vous avez eu beaucoup de
<option>...<option>
qui devrait être<option>...</option>
Rien que le retour de Vincent commentaire - essayé la deuxième option ( var sel = selection[0].valeur; alert(sel); ) et cela a fonctionné!!! Merci beaucoup!
OriginalL'auteur Vincent McNabb
Tout ce que vous devez faire est de:
OriginalL'auteur Idealmind
Rapide, hackish façon:
Détaillé, de la façon recommandée:
OriginalL'auteur f.ardelian
.getSelected() retourne un tableau. Voir les docs: http://mootools.net/docs/core/Element/Element#Element:getSelected .
Mon Code est :
OriginalL'auteur forestk