Использование jQuery .live для заполнения выпадающего списка и выбора элемента - PullRequest
1 голос
/ 10 декабря 2010

См. здесь , если вы хотите увидеть, что я делаю.

Я могу получить раскрывающийся список для загрузки из источника JSON, но когда я выбираю элемент, список перезагружается снова. Я знаю, в чем проблема, я просто не знаю решения.

$("#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 голосов
/ 10 декабря 2010

Попробуйте 'focus' или 'change', может быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...