2010-03-04 19 views
91

Ich versuche, die ausgewählte Option aus einem Dropdown zu erhalten und ein anderes Element mit diesem Text wie folgt zu füllen. IE bellt einen Sturm auf und es funktioniert nicht in Firefox:Ausgewählte Option aus Element auswählen

Was mache ich falsch?

+1

Ich würde auch firefox für firefox vorschlagen, wenn Sie es nicht schon haben. –

+0

Verloren nach "es funktioniert nicht", ohne anzugeben, in welcher Weise es nicht funktioniert. – LarsH

Antwort

183

Hier ist eine kurze Version:

$('#ddlCodes').change(function() { 
    $('#txtEntry2').text($(this).find(":selected").text()); 
}); 

karim79 einen guten Fang gemacht, indem Sie Ihre Elementnamen zu urteilen txtEntry2 kann eine Textbox, wenn es irgendeine Art von Input ist, Sie müssen stattdessen .val() verwenden oder .text() wie folgt:

$('#txtEntry2').val($(this).find(":selected").text()); 

Für das "was ist los?" Teil der Frage: .text() nimmt keinen Selektor, es nimmt Text, den Sie wollen, oder nichts, um den Text bereits dort zurückgeben. Also müssen Sie den gewünschten Text holen und ihn dann in die Methode .text(string) für das Objekt einfügen, das Sie einstellen möchten, wie oben beschrieben.

+7

Wenn 'txtEntry2' eine Texteingabe ist, muss OP stattdessen' val() 'verwenden. – karim79

+0

@ karim79 - Guter Punkt, durch den Elementnamen ist es wahrscheinlich, Aktualisierung. –

+0

Ja, indem Sie .text in .val ändern und den Text anders abrufen, wird alles ausgeblendet. Danke, Jungs – Matt

15

Try this:

$('#ddlCodes').change(function() { 
    var option = this.options[this.selectedIndex]; 
    $('#txtEntry2').text($(option).text()); 
}); 
8

Hier ist eine kürzere Version, die auch funktionieren sollte:

$('#ddlCodes').change(function() { 
     $('#txtEntry2').text(this.val()); 
    }); 
+0

Uncaught TypeError: Objekt # hat keine Methode 'val' – DoodleKana

+0

'this.value' würde es beheben. –

4

Mit weniger jQuery:

<select name="ddlCodes" 
onchange="$('#txtEntry2').text(this.options[this.selectedIndex].value);"> 

this.options[this.selectedIndex].value ist schlicht JavaScript.

(Quelle: German SelfHTML)

1

Das ist für mich gearbeitet:

$("#SelectedCountryId_option_selected")[0].textContent 
2

Versuchen folgenden Code

$('#ddlCodes').change(function() { 
    $('#txtEntry2').val( $('#ddlCodes :selected').text()); 
}); 
2

Um zu wissen, Anzahl der ausgewählten Elemente verwenden

$("select option:selected").length 

Um den Wert aller ausgewählten Elemente Get

var str = ""; 
    $("select option:selected").each(function() { 
     str += $(this).text() + " "; 
     }); 
1

Der erste Teil verwenden, das Element aus dem Dropdown-Menü zu erhalten, die wie folgt aussehen:

<select id="cycles_list"> 
    <option value="10">10</option> 
    <option value="100">100</option> 
    <option value="1000">1000</option> 
    <option value="10000">10000</option> 
</select> 

über jQuery So erfassen Sie tun können, so etwas wie so:

$('#cycles_list').change(function() { 
    var mylist = document.getElementById("cycles_list"); 
    iterations = mylist.options[mylist.selectedIndex].text; 
}); 

Sobald Sie den Wert in der Variable gespeichert haben, wäre der nächste Schritt sein, um die Informationen in den variablen auf das Formularfeld oder HTML-Element Ihrer Wahl gespeichert zu senden. Es kann ein div p oder benutzerdefiniertes Element sein.

i.e. <p></p> OR <div></div>

würden Sie verwenden:

$('p').html(iterations); OR $('div').html(iterations);

Wenn Sie ein Textfeld zu füllen, wie:

<input type="text" name="textform" id="textform"></input>

Sie würden verwenden:

$('#textform').text = iterations;

Natürlich können Sie kann alles in weniger Schritten machen, ich glaube nur Es hilft Menschen zu lernen, wenn Sie alles in leicht verständliche Schritte brechen ... Hoffe das hilft!

1

Mit dem selectedOptions Eigenschaft (HTML5) können Sie die gewählte Option erhalten (s)

document.getElementbyId("id").selectedOptions; 

Mit JQuery können, indem Sie diese

$("#id")[0].selectedOptions; 

oder

$("#id").prop("selectedOptions"); 

erreicht werden Die Eigenschaft enthält ein HTMLCollection-Array similitar, das ausgewählt ist

Option
[<option value=​"1">​ABC</option>] 

oder mehrere Auswahlen

[<option value=​"1">​ABC</option>, <option value=​"2">​DEF</option> ...] 
0

Die oben sehr gut funktionieren würde, aber es scheint, dass Sie die jQuery-Typumwandlung für den Drop-Down-Text verpasst. Ansonsten wäre es ratsam, .val() zu verwenden, um Text für ein Eingabetextelement festzulegen. Mit diesen Änderungen würde der Code wie folgt aussehen:

$('#txtEntry2').val($('#ddlCodes option:selected').text()); 
0

, wenn Sie dies bereits und diese Verwendung jquery wird Ihre Antwort:

$ ($ (this) [0] .selectedOptions [0]) .text()

0

HTML Gegeben:

<select> 
    <option value="0">One</option> 
    <option value="1">Two</option> 
</select> 

Auswahl nach Beschreibung für jQuery v1.6 +:

var text1 = 'Two'; 
$("select option").filter(function() { 
    //may want to use $.trim in here 
    return $(this).text() == text1; 
}).prop('selected', true); 
Verwandte Themen