Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery对话框-访问部分表单值_Jquery_Json_Forms_Dialog - Fatal编程技术网

JQuery对话框-访问部分表单值

JQuery对话框-访问部分表单值,jquery,json,forms,dialog,Jquery,Json,Forms,Dialog,您好,我加载一个JQuery对话框,其中包含一个表单(目前)和一个输入字段 我使用MVC 3和JsonValueProviderFactory来支持将JSON传递给我的操作方法。但是我无法访问我的表单字段,因为对话框正在加载部分 是否有人知道用于访问加载到对话框中的表单字段的JQuery。对话框代码为: $('#Test').dialog({ bgiFrame: true, autoOpen: false, modal: true,

您好,我加载一个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(数据),但没有定义数据,因为我需要从表单值构造类型。顺便说一句,当我这样做时,它就工作了,因为数据变量代表了我的action方法接收到的类型,但是我想从表单字段构造它

$('#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');
            }
        }
    });    

任何人能提供的任何帮助都将不胜感激。

我建议您在部分中创建一个表单标签,并将其加载到对话框中。然后可以使用jquery方法创建要发送到操作方法的post值

e、 g


我建议您在分部文件中创建一个表单标记,并将其加载到对话框中。然后可以使用jquery方法创建要发送到操作方法的post值

e、 g


好的,在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 ... 
})
var clone=$('form.partial').clone().wrap(''.parent();
var data=clone.serialize();
clone.remove()//从dom中删除克隆,并在收集数据后立即将其处置。
//正如@redsquare指出的那样,这将阻止任何ID复制。
$.ajax({
url:“[url]”,
“数据”:数据,
//…成功、错误、类型等。。。
})

好的,在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 ... 
})
var clone=$('form.partial').clone().wrap(''.parent();
var data=clone.serialize();
clone.remove()//从dom中删除克隆,并在收集数据后立即将其处置。
//正如@redsquare指出的那样,这将阻止任何ID复制。
$.ajax({
url:“[url]”,
“数据”:数据,
//…成功、错误、类型等。。。
})

谢谢您的建议,但这并不能解决问题。我最初是这样做的,编写了一个自定义模型绑定器来获取表单集合,并从表单集合创建我的类型。但它不起作用。模型活页夹没有着火。应该有吗?在失败之后,我转到上面的JSON实现。还有什么想法吗?@user287079 ASP.NET MVC 3现在可以自动将传入的JSON post值绑定到.NET类型,您使用的是mvc3吗?如果您使用2,那么您必须编写一个模型绑定器来将json序列化为.NET类型-请参阅,谢谢,是的,我开始使用MVC 3和json值提供程序,但是,在对话框中查找表单值、构造类型、转换为json、验证、,最后,我们选择了一个肮脏的把戏,我不喜欢,但它让我们现在行动起来。不过谢谢你的建议。好吧,在DOM上这样做如何,而不显示表单,例如:
$('form.partial').clone().wrap('''.parent().serialize()
不确定这是否可行,但你得到了要点?@val-但是你最终会得到重复的id等(如果你使用id的话)。谢谢你的建议,但这并不能解决问题。我最初是这样做的,编写了一个自定义模型绑定器来获取表单集合,并从表单集合创建我的类型。但它不起作用。模型活页夹没有着火。应该有吗?在失败之后,我转到上面的JSON实现。还有什么想法吗?@user287079 ASP.NET MVC 3现在可以自动将传入的JSON post值绑定到.NET类型,您使用的是mvc3吗?如果您使用2,那么您必须编写一个模型绑定器来将json序列化为.NET类型-请参阅,谢谢,是的,我开始使用MVC 3和json值提供程序,但是,在对话框中查找表单值、构造类型、转换为json、验证、,最后,我们选择了一个肮脏的把戏,我不喜欢,但它让我们现在行动起来。不过谢谢你的建议。好吧,在DOM上这样做如何,而不显示表单,例如:
$('form.partial').clone().wrap('''.parent().serialize()
不确定这是否可行,但是你得到了要点?@val-但是你最终会得到重复的id等(如果你使用id的话)。