【问题标题】:Can't set select option as default无法将选择选项设置为默认值
【发布时间】:2014-09-23 14:31:47
【问题描述】:

我正在尝试在本地存储的选择菜单中设置默认选项,我使用 GUID 作为值。

<script type="text/javascript">
    $(document).ready(function () {
        var guid = getParameterByName("dashId");

        //$("#cboDashboards").val(guid); - Attempt #1 
        //$("#cboDashboards > option[value=" + guid + "]").prop("selected", true); - Attempt #2
        //jQuery('#cboDashboards > option[value="' + guid + '"]').prop('selected', true) - Attempt #3
    });

    document.getElementById("cboDashboards").onchange = function () {
        localStorage.dashboardGuid = this.value;
        window.location.href = "/Home/Index?dashId=" + this.value;
    };
</script>

存储的 GUID 与我尝试填充组合框的 GUID 相同,但是,我尝试了三种不同的方法来尝试填充组合框,但都没有奏效。关于为什么这不能按预期工作的任何建议?

编辑 - 这种方法会对它有什么影响吗?调用它来填充组合框的值:

function populateDashboard(data) {
    var options = $("#cboDashboards");

    $.each(data, function () {
        options.append($("<option />").val(this.DashboardGuid).text(this.Name));
    });
}

我填充了一些测试数据 -

<select  id="cboDashboards">
    <option value="0">Select dashboard</option>
    <option value="1">Select dashboard 1</option>
    <option value="2">Select dashboard 2</option>
    <option value="3">Select dashboard 3</option>
    @* <option value="0">Select dashboard</option>*@
</select>

我做到了:

$("#cboDashboards").val('1'); // - 尝试 #1

这行得通,所以我的 GUID 值似乎有问题?

【问题讨论】:

  • 我想我找到了问题所在。您在加载所有选项之前调用选择函数
  • 那你有什么建议?

标签: javascript jquery select combobox


【解决方案1】:

使用以下代码尝试使用 jQuery:

function populateDashboard(data) {
    var options = $("#cboDashboards");

    $.each(data, function () {
        options.append($("<option />").val(this.DashboardGuid).text(this.Name));
    });

    var guid = getParameterByName("dashId");
    //select element
    $('#cboDashboards option[value='+ guid +']').attr('selected', 'selected');
}

希望对你有所帮助。

【讨论】:

  • 不,同样的问题,第一个选项仍在选择中。
  • 在选择元素之前试试这个:$('#cboDashboards option').removeAttr('selected');
  • 后台运行了很多用于填充组合框的 C# 代码,我想知道是不是因为我使用的是 GUID,所以它可能会影响它
  • 也许你错过了什么。我创建了一个小提琴,它可以工作jsfiddle.net/ujn5mhq3
  • 是的,我对我的帖子进行了更改,如果我手动填充了值,它工作正常,只是当我自己自动填充值时
猜你喜欢
  • 2017-04-28
  • 1970-01-01
  • 2021-06-28
  • 2015-09-19
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
相关资源
最近更新 更多