/ / Wie erhalte ich den Text eines ausgewählten Elements in einem ausgewählten Steuerelement? - Javascript, Prototypen

Wie erhält man den Text eines ausgewählten Elements in einem ausgewählten Steuerelement? - Javascript, Prototypjs

 <select name="DropList" id="serverDropList">
<option selected="selected" value="2">server1:3000</option>
<option value="5">server3:3000</option>
</select>

Ich weiß, in Prototypen kann ich Wert durch bekommen $("serverDropList").value aber wie kann ich "server1: 3000" bekommen?

Antworten:

19 für die Antwort № 1

Ich glaube nicht, dass Prototype eine Verknüpfung hat, die das für Sie erledigt.

var box = $("serverDropList");
var text = box.selectedIndex >= 0 ? box.options[box.selectedIndex].innerHTML : undefined;

... gibt dir das innerHTML der ausgewählten Option oder undefined wenn es keine gibt.

Wenn Sie möchten, können Sie verwenden Element#addMethods Um dies einmal zu definieren und in allen Auswahlfeldern verfügbar zu haben:

Element.addMethods("SELECT", (function() {
function getSelectedOptionHTML(element) {
if (!(element = $(element))) return;
var index = element.selectedIndex;
return index >= 0 ? element.options[index].innerHTML : undefined;
}

return {
getSelectedOptionHTML: getSelectedOptionHTML
};
})());

Verwendung:

var text = $("serverDropList").getSelectedOptionHTML();

Ich habe eine benannte Funktion verwendet, um das zu definieren. Wenn Sie sich nicht um benannte Funktionen kümmern (das bin ich, ich benutze sie immer), können Sie es ein bisschen einfacher machen:

Element.addMethods("SELECT", {
getSelectedOptionHTML: function(element) {
if (!(element = $(element))) return;
var index = element.selectedIndex;
return index >= 0 ? element.options[index].innerHTML : undefined;
}
);

22 für die Antwort № 2

Wenn Sie Prototype verwenden, können Sie Folgendes verwenden:

var text = $("serverDropList")[$("serverDropList").selectedIndex].text;

5 für die Antwort № 3

Es tut mir leid, wenn ich mit dieser Antwort zu spät komme, aber ich habe das gleiche Problem untersucht und war mit dieser Antwort nicht zufrieden. Deshalb habe ich nach einer besseren Antwort gesucht:

Prototype hat den folgenden Selektor, den Sie verwenden können, um den ausgewählten Wert Ihrer Liste zu erhalten: $ F. In Ihrer Beispielsituation sollte der folgende Code funktionieren:

$F("serverDropList"); -- this for getting the value
$F("serverDropList").text; -- this for getting the text

2 für die Antwort № 4
function getSelectedValue( obj ) {
return obj.options[obj.selectedIndex].value;
}

Verwendung:

<select onchange="alert(getSelectedValue(this););" id="mySelect">
<option value="1">one</option>
<option value="2">two</option>
</select>

oder

getSelectedValue(document.getElementById("mySelect"));

oder (bei Verwendung eines Prototyps oder einer Abfrage)

getSelectedValue($("mySelect"));

0 für die Antwort № 5

Wählen Sie die zweite Wahl:

<select onchange="alert(getSelectedValue(this););" id="mySelect">
<option> value="1" city="chicago"> one </option>
<option> value="2" city="orlando"> two </option>
</select>

Ich muss den Artikelwert Stadt auswählen.