无法将选项设置为默认值

时间:2014-09-23 14:31:47

标签: javascript jquery select combobox

我正在尝试在本地存储的选择菜单中设置默认选项,我使用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>

我做了:

$(&#34;#cboDashboards&#34)。VAL(&#39; 1&#39); // - 尝试#1

这很有效,所以我似乎遇到了GUID值的问题?

1 个答案:

答案 0 :(得分: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');
}

我希望这有帮助。