Javascript: получить выбранный вариант из списка и вставить его в тег метки - PullRequest
0 голосов
/ 13 августа 2010

У меня есть список стран, html, у них есть числовые идентификаторы и название страны:

Ex:

<select name="userDto.nationality" id="userDto.nationality">
            <option value="">Seleccione</option>
                <option value="1">Alemania</option>
                <option selected="selected" value="2">Argentina</option>
                <option value="8">Australia</option>
                <option value="9">Austria</option>
                <option value="10">Bélgica</option>
                <option value="11">Bolivia</option>
</select>

Я пытаюсь использовать скрипт jquery, чтобы получить страну из списка, а не значение, имя и вставить ее внутри метки.

$(document).ready(function() {      
    $("#userDto\\.nationality option:selected").click(function() { $("#nationalityLabel").html(this.value); });

});

И HTML-код, который должен получить название страны:

<div name="userLabelDiv" id="nationalityUserLabelDiv">
    <label class="required">Nacionalidad :</label>
    <label id="nationalityLabel"></label> 
</div>

Может ли кто-нибудь помочь мне решить проблему? Я не могу найти, где моя ошибка в коде JS. Спасибо

1 Ответ

2 голосов
/ 13 августа 2010

Две маленькие вещи:

  • изменить селектор с $("#userDto\\.nationality option:selected") на $("#userDto\\.nationality")

  • изменить обработчик событий с click на change

Готово.

$(document).ready(function() {      
   $("#userDto\\.nationality").change(function() { 
      $("#nationalityLabel").html(this.value);
   });
});

Почему:

Ваш текущий код работал бы, но только для «Аргентины», поскольку он selected по умолчанию.С помощью селектора option:selected вы привязываете обработчик событий только к выбранным элементам опций, т. Е. К Аргентине.

Поэтому вам нужно добавить обработчик событий к самому select element.Обработчик изменений срабатывает всякий раз, когда вы меняете выбор.Я думаю, это ваш желаемый результат.

...