Как я могу закрыть один JQuery UI Dialog и сосредоточиться на другом? - PullRequest
0 голосов
/ 03 августа 2010

После моего вызова $ .ajax () все диалоги пользовательского интерфейса в настоящее время закрываются, и кажется, что страница выполняет полную обратную передачу в соответствии с firebug - это не то, что я хочу.Я хочу, чтобы диалоговое окно List ** UI ** (читай: частичное представление) было видимым, затем нажимается кнопка «Создать», чтобы открыть другое диалоговое окно UI для создания адреса.Я хочу ajax опубликовать данные (желательно строго типизированные, хотя я не мог понять, как это сделать, отсюда и уродливое значение data: в вызове & .ajax), закрыть адрес созданиядиалоговое окно и обновить диалоговое окно «Список» - никогда не «возвращаться» к исходному стандартному представлению до открытия списка.

в режиме создания частичного представления:

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

inчастичное представление списка

<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 не имеет достаточного кода JQuery UI Dialog, чтобы делать то, что я хочу, и я думаю, что его сообщение включало стандартные представления, где я использую частичные представления.-Но я использую его класс ModalViewEngine.

Кроме того, последующие нажатия кнопки «Создать» приводят к созданию диалогового окна интерфейса пользователя jQuery со старыми значениями в моих текстовых полях - как мне их сбросить?

1 Ответ

1 голос
/ 04 августа 2010

Попробуйте поместить кавычки вокруг 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;
    });
});
...