как изменить значение выбранного параметра во время выполнения с помощью jquery?

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

$('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);

    });

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


person sahar    schedule 26.07.2011    source источник


Ответы (1)


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

person James Montagne    schedule 26.07.2011