JQuery пост и диалоговое окно - PullRequest
0 голосов
/ 31 января 2012

Я использую $ .post () для извлечения контента из базы данных, который затем хочу использовать для манипулирования значениями формы.Как только это будет сделано, я хочу открыть диалоговое окно jQuery.Я пишу для очень простой системы редактирования событий.Я просто не могу открыть диалоговое окно внутри $ .post (), и если я сделаю это вне $ .post (), значения формы вернутся пустыми.

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

Мой код:

// Edit a banner:
$("input[name='eventEditBtn']").click(function() {
    var eventID = $(this).attr("rel");
    $.post("www/scripts/ajax/getEventInfo.php",{id : eventID},function(data) {
        if(data.success == true) {
            var info = data.info;
            $("input[name='editEventName']").val(info.name);
            $("input[name='editEventDate']").val(info.date);
            $("input[name='editEventTime']").val(info.time);
            $("textarea[name='editEventSummary']").val(info.summary);
            $("textarea[name='editEventDescription']").val(info.description);
            $("#editEventCurrentCategory").html("The current category is: "+info.categoryName);
            $("input[name='editEventVenue']").val(info.venue);
            $("input[name='editEventCost']").val(info.cost);
            $("#editEventCurrentStatus").html("The current status is: "+info.categoryName);
            $("#editEventContainer").dialog({width: 600, title: "EDIT EVENT:"});
        } else {
            $("<div />").dialog("An error has occured retrieving this event information.");
            return false;
        }
    });
    return false;
});

1 Ответ

1 голос
/ 31 января 2012

Может быть, потому что входы изменяются до инициализации диалога? Попробуйте инициализировать его перед вызовом $ .post, например так:

$('#editEventContainer').dialog({
            autoOpen: false,
            width: 600,
            title: "EDIT EVENT:"
});

, а затем ваш вызов $ .post открывает диалог с помощью:

$('#editEventContainer').dialog('open');

Не забудьте также проверить правильность выбора.

...