【问题标题】:how to change the value of selected option at run time using jquery?如何在运行时使用 jquery 更改选定选项的值?
【发布时间】:2011-07-26 20:38:23
【问题描述】:

我想在运行时根据其他输入的值更改所选选项的值。 前任。当用户在年份输入中输入一个值,并从学期选择元素中选择一个选项时,我想将所选学期的值更改为“年+学期” 我尝试执行以下操作:

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

    });

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

【问题讨论】:

    标签: jquery select option


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2015-07-05
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      相关资源
      最近更新 更多