jQuery对话框没有在Ajax调用中触发

时间:2013-07-02 11:45:44

标签: javascript jquery ajax jquery-ui-dialog

我目前已设置好,以便在AJAX帖子成功时显示一个对话框。 AJAX帖子成功(下面的警报正在触发),但是没有显示对话框。我无法弄清楚为什么。这是我的标记:

<a data-eventid="@item.EventId" id="raffle-@item.EventId" class="raffle-charity-button" href="#"><img src="~/Images/Raffle.png" alt="Raffle" title="Pick a winner!"/></a>

<div id="raffle-event-dialog">
    <p class="dialogDisplayWinner">
    </p>
</div>

......这是我的剧本:

$(".raffle-charity-button").click(function() {
            charityEventId = $(this).data("eventid");
            //charityEventId = parseInt($(this).attr("id").split("-")[1]);
            var url = "@Url.Action("Raffle", "DonationEvent")";
            var postData = {
                id: charityEventId
            };
            $.ajax({
                type: "POST",
                url: url,
                data: postData,
                datatype: "json",
                success:
                    function(data) {
                        if (data != "") {
                            if (data.Success == "false") {
                                window.location = "../Error";
                            } else {
                                var originalVerbiage = "The winner of the raffle is... "
                                $(".dialogDisplayWinner").empty();
                                $(".dialogDisplayWinner").append(originalVerbiage + "test");

                                $("#raffle-event-dialog").dialog({
                                        modal: true,
                                        autoOpen: false,
                                        buttons: {
                                            "OK": function() {
                                                $("#raffle-event-dialog").dialog("close");
                                            }
                                        },
                                        resizable: false
                                    }
                                );
                                alert(data.Success);
                            }
                        }
                    },
                error:
                    function(jqxhr, ajaxOptions, thrownError) {
                        alert("An error occurred: error Code(" + jqxhr.status + ") message: " + jqxhr.responseText);
                    }
            });
        });

我忽略了一些明显的东西吗?这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

您正在创建对话框,其中autoOpen选项设置为false,因此对话框不会自动打开(请查看文档here)。将此值更改为true或稍后调用以打开对话框:

$("#raffle-event-dialog").dialog('open');

答案 1 :(得分:1)

在您的代码中,autoOpen属性为false。将其设置为&#34; true&#34;自动打开对话框。

$("#raffle-event-dialog").dialog({
         modal: true,
         autoOpen: true,
         buttons: {
         "OK": function() {
             $("#raffle-event-dialog").dialog("close");
            }
          },
          resizable: false
        }
 );