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中匿名函数,函数直接量和闭包
May 08 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
Javascript中神奇的this
Jan 20 Javascript
AngularJs Javascript MVC 框架
Jun 20 Javascript
基于jQuery制作小图标上下滑动特效
Jan 18 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
Jun 19 Javascript
JavaScript中while循环的基础使用教程
Aug 11 Javascript
Nest.js参数校验和自定义返回数据格式详解
Mar 29 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
PHP5常用函数列表(分享)
2013/06/07 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python 实现自动导入缺失的库
2019/10/29 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
美国创意之家:BulbHead
2017/07/12 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
python 实现的截屏工具
2021/05/08 Python
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL