我想根据其他输入的值在运行时更改所选选项的值。 恩。当用户在年份输入中输入一个值,并从学期选择元素中选择一个选项时,我想将所选学期的值更改为“年+学期” 我尝试执行以下操作:
$('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选项时,select元素变为空。为什么?以及它如何运行?
答案 0 :(得分: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);
});