Диалог JQuery - доступ к частичным значениям формы - PullRequest
1 голос
/ 13 мая 2011

Привет, я загружаю диалоговое окно JQuery, которое содержит форму с (в настоящее время) одним полем ввода.

Я использую MVC 3 и JsonValueProviderFactory для поддержки передачи JSON в мой метод действия.Но я не могу получить доступ к полям формы, потому что диалоговое окно загружает частичное.

Кто-нибудь знает JQuery для доступа к полям форм, загруженным в диалог?Код диалога:

$('#Test').dialog({
        bgiFrame: true,
        autoOpen: false,
        modal: true,
        height: 400,
        width: 500,
        title: 'Add report',
        draggable: true,
        postion: 'center',
        buttons: {
            "save": function () {

                $.ajax({
                    url: '/Test/Save',
                    type: "Post",
                    data: JSON.stringify(data),
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function () {
                        alert("well done");
                    },
                    error: function () {
                        alert("error");
                    }
                });
            },
            "cancel": function () {
                $(this).dialog('close');
            }
        }
    });

Как видите, я использую JSON.stringify (data), но не определил данные, так как мне нужно создать тип из значений формы.Кстати, это работает, когда я делаю, так как переменная данных представляет тип, полученный моим методом действия, однако я хочу создать его из полей формы

$('#Test').dialog({
        bgiFrame: true,
        autoOpen: false,
        modal: true,
        height: 400,
        width: 500,
        title: 'Add report',
        draggable: true,
        postion: 'center',
        buttons: {
            "save": function () {

                var data = { Name: "Blah" }; 

                $.ajax({
                    url: '/Test/Save',
                    type: "Post",
                    data: JSON.stringify(test),
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function () {
                        alert("well done");
                    },
                    error: function () {
                        alert("error");
                    }
                });
            },
            "cancel": function () {
                $(this).dialog('close');
            }
        }
    });    

Любая помощь, которую кто-либо может предоставить, будет с благодарностью оценена.

Ответы [ 2 ]

1 голос
/ 12 марта 2013

хорошо, как насчет того, чтобы сделать это в DOM, даже не отображая форму, например:

var clone =  $('form .partial').clone().wrap('<form />').parent();    
var data = clone.serialize();
clone.remove();//remove the clone from the dom, dispose of it as soon as we gathered the data.
//this will stop any ID duplication as @redsquare pointed out.

$.ajax({ 
   url: '[url]',
   'data':data,
   //...success,error, type, etc ... 
})
0 голосов
/ 13 мая 2011

Я предлагаю вам создать тег формы в части, которую вы загружаете в диалог. Затем вы можете использовать метод jquery serialize для создания значений записей для отправки в ваш метод действия.

* 1005 например *

var data = $('#formId').serialize();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...