jQuery UI Dialog控件中的表单无法正常提交的解决方法


Posted in Javascript onDecember 19, 2010

最近使用jQuery UI的Dialog控件时发现如果在此控件放置表单,则所有表单均无法正常提交,具体表现为:
1.提交按钮失效,点击后无任何反应。

2.即便是使用其它手段使页面产生提交,服务器端也无法取到Dialog中的表单数据。

研究了页面源码后发现,jQuery UI Dialog控件初始化时动态生成的HTML元素被添加到页面的尾部、form元素的后面,而原始的Dialog模板部分(其内包含表单元素)也被移到了 动态生成的HTML元素内。也就是说,原先在form内的表单在Dialog初始化后就被移到form外了,这就导致了Dialog模板内表单全部失效。

不知jQuery UI的Dialog这样设计是一项功能还是一个bug。为了在Dialog内实现正常的页面提交,根据上述分析,我找到一个简单的解决办法——在jQuery UI控件的“open”事件处理程序中将Dialog控件动态生成的HTML元素移到form元素内,代码如下:

$("#dlg").dialog({ 
open: function () { 
$("body > div[role=dialog]").appendTo("form#aspnetForm"); 
} 
});

代码中的“aspnetForm”是ASP.NET应用程序自动生成的当前页面form元素ID,使用时你可以换成自己页面的form ID。
Javascript 相关文章推荐
JavaScript 动态创建VML的方法
Oct 14 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
js 处理URL实用技巧
Nov 23 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
Apr 10 Javascript
JavaScript淡入淡出渐变简单实例
Aug 06 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
详解JavaScript调用栈、尾递归和手动优化
Jun 03 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
记录vue做微信自定义分享的一些问题
Sep 12 Javascript
24行JavaScript代码实现Redux的方法实例
Nov 17 Javascript
Vuex实现数据共享的方法
Dec 20 Javascript
vscode调试node.js的实现方法
Mar 22 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 #Javascript
有关js的变量作用域和this指针的讨论
Dec 16 #Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 #Javascript
jquery中动态效果小结
Dec 16 #Javascript
关于jquery append() html时的小问题的解决方法
Dec 16 #Javascript
Javascript学习笔记二 之 变量
Dec 15 #Javascript
Javascript学习笔记一 之 数据类型
Dec 15 #Javascript
You might like
打造计数器DIY三步曲(中)
2006/10/09 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
详解JavaScript的AngularJS框架中的作用域与数据绑定
2016/03/04 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
js实现秒表计时器
2019/12/16 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python生成随机密码
2015/03/10 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
PyMongo安装使用笔记
2015/04/27 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
我们是伦敦女孩:WalG
2018/01/08 全球购物
工程监理应届生求职信
2013/11/09 职场文书
看上去很美观后感
2015/06/10 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
Golang表示枚举类型的详细讲解
2021/09/04 Golang