如何关闭一个jQuery UI对话框并关注另一个?

时间:2010-08-03 19:46:09

标签: jquery asp.net-mvc jquery-ui jquery-ui-dialog

在我调用$ .ajax()后,所有UI对话框当前都关闭,并且页面似乎按照firebug执行完整的回发 - 这不是我想要的。我希望List ** UI对话框**(读取:部分视图)可见,然后按下“创建”按钮打开另一个用于创建地址的UI对话框。我想 ajax发布数据(最好是强类型的,但我无法弄清楚如何做到这一点,因此& .ajax调用中的丑陋data:值,关闭创建地址对话框并刷新列表对话框 - 在打开列表之前永远不“返回”初始标准视图。

创建局部视图中的

<input type="submit" value="Create" onclick="createaddress(<%= ViewData["ProfileID"] %>); return false;" />
列表局部视图中的

<script type="text/javascript">
function createaddress(id) {
        $.ajax({
            type: "POST",
            url: "/Address/Create/" + id,
            data: "address1=" + document.getElementById('Address1').val() + "&address2=" + document.getElementById('Address2').val() +
                "&city=" + document.getElementById('City').val() + "&state=" + document.getElementById('State').val() + "&zip=" + document.getElementById('Zip').val() +
                "&zipplus=" + document.getElementById('ZipPlus').val(),
            success: function (msg) {
                $("#dialog-address-create").dialog('close');
            }
        });
    }
</script>

jfar's post没有足够的jQuery UI Dialog代码来做我想要的事情,我认为他的帖子涉及我使用部分视图的标准视图 - 但我正在使用他的ModalViewEngine类。

此外,随后点击Create会在我的文本框中生成一个带有旧值的jQuery UI对话框 - 如何重置这些值?

1 个答案:

答案 0 :(得分:1)

尝试在viewdata周围加上引号:

<input type="submit" value="Create" 
    onclick="createaddress('<%= ViewData["ProfileID"] %>'); return false;" />

甚至更不引人注目:

<% using (Html.BeginForm("create", "address", new { id = ViewData["ProfileID"] }, FormMethod.Post, new { id = "theForm" })) { %>
    <!-- some input fields -->
    <input type="submit" value="Create" />
<% } %>

然后附加到表单的提交事件:

$(function() {
    $('#theForm').submit(function() {
        $.ajax({
            type: this.method,
            url: this.action,
            data: $(this).serialize(),
            success: function (msg) {
                $("#dialog-address-create").dialog('close');
            }
        });
        return false;
    });
});