我正在使用$('#myForm').seralize()通过$.ajax()将参数传递到服务器端组件,但是,当我在jqueryui对话框使用的div中包含任何表单元素时,$('#myForm').seralize()不能识别该div中的任何表单元素更改。

请参阅我的jsfiddle示例。

最佳答案

这是因为$('#dialog').dialog()通过将#dialog完全克隆到另一个位置(我相信页面的底部)将#myform<div> 中移出。

您可以使用以下命令在对话框中找到输入:

$('#dialog :input').serialize();


也许您可以将两组分开,然后将它们一起发送回服务器:

...
data: {
    common: $('#myForm').serialize(),
    dialog: $('#dialog :input').serialize();
},
...


或者,也许您可​​以将它们组合在一起,如下所示:

...
data: $('#myForm').serialize() + '&' + $('#dialog :input').serialize(),
...


更新的jsFiddle

关于jquery - $ .serialize()识别jQuery UI对话框中的表单元素更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11851896/

10-12 13:41