Während der Benutzer seine Adressdaten eingibt, sammle ich die Daten und erstelle eine einzelne Zeile zur Anzeige. Ich kann die Texteingaben mit einer Zeile wie dieser in Ordnung bringen var address1 = document.address.address1.value;, aber die Städte sind ein Auswahlfeld, wobei die Werte IDs und der Text der Wert sind, den ich sammeln muss. Für die Texteingaben verwende ich onkeyup = "autoAddress ();" und die Auswahl verwende ich onchange = "autoAddress ();"

Die Zeile var town = document.address.town_id.value gibt mir die ID zurück, aber ich brauche den Text

<input type="text" name="address1" id="address1" data-rule-required="true" class="form-control" value="{$form_data.address1}" onkeyup="autoAddress();">
<input type="text" name="address2" id="address2" class="form-control" value="{$form_data.address2}" onkeyup="autoAddress();">
<select class="form-control chosen" name="town_id" id="town_id" data-rule-required="true" data-placeholder="Choose a town" onchange="autoAddress();">
    <option value=""></option>
    {foreach $towns as $town}
    <option value="{$town.id}" {if $town.id eq $form_data.town_id}selected="selected"{/if}>{$town.town_name} {if $town.region_name}, {$town.region_name}{/if}</option>
    {/foreach}
</select>

function autoAddress(){
    var house_number = document.address.house_number.value;
    var address1 = document.address.address1.value;
    var address2 = document.address.address2.value;
    var town = document.address.town_id.value;
    var postcode = document.address.postcode.value;
}
1
Pierce McGeough 6 Dez. 2013 im 14:43

4 Antworten

Beste Antwort
var town = document.address.town_id.options[document.address.town_id.selectedIndex].innerHTML;
0
Barmar 6 Dez. 2013 im 10:49

Sie sollten dies versuchen.

function autoAddress(){
    var house_number = document.address.house_number.value;
    var address1 = document.address.address1.value;
    var address2 = document.address.address2.value;
    var town = document.address.town_id.options[document.address.town_id.selectedIndex].text;
    var postcode = document.address.postcode.value;
}
0
Bhavesh Kachhadiya 6 Dez. 2013 im 10:50

Versuchen Sie Folgendes:

document.getElementById('town_id').options[document.getElementById('town_id').selectedIndex].text;
0
Mr.G 6 Dez. 2013 im 11:17

Versuchen Sie '.text' anstelle von '.value'. Z.B:

var townElement = document.getElementById('town_id');
var townText = townElement[townElement.selectIndex].text;
0
imcg 6 Dez. 2013 im 10:54