jquery - $.serialize() 用于识别 jQuery UI 对话框中表单元素的更改

标签 jquery jquery-ui

我正在使用 $('#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/

相关文章:

javascript - 使用 CSS 和 Velocity JS 淡化内联 block

jquery - jQueryUI 安装是否有正确的目录结构?

javascript - jQuery:选择出现在另一个指定元素之后的元素的第一个实例

jquery-ui - jQuery UI - 如何禁用子拖动排序

jquery - 在 Jquery datetimepicker 中仅显示第一行日期

jQuery 自动完成 : if user writes down a match, 回调函数不会被调用

jquery-ui - 如何在不调用更改/幻灯片方法的情况下更改 slider 的位置?

jquery - 如果包含某些文本,则运行jquery

javascript - 为 instafeed 生成的每个列表项生成 id

javascript - keyup() 事件不适用于除移动设备上的英语之外的其他语言