2011-07-26 26 views
0

我想在运行时根据其他输入的值更改所选选项的值。 ex。当用户在一年输入一个值,然后从学期中选择元素的选择,我想更改选定学期的价值是“年+学期” 我尽量做到以下几点:如何在运行时使用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); 

    }); 

我删除选定的选项并添加新的选项与新的值。 但是当我运行代码并选择其中一个选项时,select元素变为空。为什么?以及如何让它运行?

回答

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

+0

非常感谢你:) – sahar

相关问题