使用jQuery .live填充下拉列表并选择项目

时间:2010-12-10 16:51:23

标签: json drop-down-menu jquery

如果你想看看我在做什么,请参见here

我可以从JSON源获取一个dropdrop列表,但是当我选择一个项目时,列表会再次重新加载。我知道问题是什么,我只是不知道解决方案。

$("#RequestType").live("click", function() {
    var items = "<option selected>(Select)</option>";
    $.each(jsonRequestType, function(i, item) {
        items += "<option value='" + item.Id + "'>" + item.Title + "</option>";
    });
    $("#RequestType").html(items);
});

我知道问题是“点击”,但我不知道应该使用什么。

更新新的相关问题我现在唯一的问题是加载编辑页面时,我必须在每个下拉列表中重新选择我的数据。如何在加载页面时将下拉列表加载?

到目前为止

工作代码减去上面的问题

显示

<td><%= Html.Hidden("RequestType", Model.DayRequested.RequestType, new { Class = "RequestTypeValue" })%>
    <%= Html.DropDownList("RequestTypeDdl", new List<SelectListItem> { new SelectListItem { Text = "(Select)", Value = "" } }, new { Class = "RequestTypeDdl" })%></td>

脚本

// Get the request types for the drop down
$(".RequestTypeDdl").live("focus", function() {
    var items = "<option>(Select)</option>";
    var field = $(this);
    $.each(jsonRequestType, function(i, item) {
        items += "<option value='" + item.Id + "'";
            if ($(field).prev("input").val() == item.Id)
                items += " selected";
            items += ">" + item.Title + "</option>";
        };
    });
    $(this).html(items);
});

$(".RequestTypeDdl").live("change", function() {
    $(this).prev("input").val($(this).val());
});

1 个答案:

答案 0 :(得分:0)

尝试'焦点'或'改变',也许。