Как изменить значение выбранного параметра во время выполнения с помощью jquery? - PullRequest
0 голосов
/ 27 июля 2011

Я хочу изменить значение выбранной опции во время выполнения на основе значения другого входа. ех. когда пользователь вводит значение в поле ввода года и выбирает опцию в семестре элемента выбора, я хочу изменить значение выбранного семестра на «год + семестр» Я пытаюсь сделать следующее:

$('select#graduationSemester').live("change", function(){
        var year = $('#graduationYear').val();
        var sem =  $(this).val();
        var semStr = $(this).text(sem);
        $("select#graduationSemester option[value='"+sem+"']").remove();  
        sem = year+sem;
        $('select#graduationSemester').append($('<option value = "'+sem+'"/>').text(semStr));
        $('select#graduationSemester').val(sem);

    });

Я удаляю выбранную опцию и добавляю новую опцию с новым значением. но когда я запускаю код и выбираю один из вариантов выбора, элемент выбора становится пустым. Зачем? и как заставить его работать?

1 Ответ

1 голос
/ 27 июля 2011

var semStr = $(this).text(sem); собирается очистить ваш выбор.Я полагаю, что вы хотели сделать следующее:

var semStr = $(this).find("option:selected").text();

Это решит проблему, хотя вы, возможно, захотите рассмотреть изменение существующего параметра вместо создания нового.Добавление нового поместит его в конец списка.Примерно так:

$('select#graduationSemester').live("change", function() {
    var $this = $(this);
    var year = $('#graduationYear').val();
    var sem = $this.val();

    $this.find("option:selected").attr("value",year + sem);
});

http://jsfiddle.net/NWbXt/1

...