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 相关文章推荐
无限树Jquery插件zTree的常用功能特性总结
Sep 11 Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
bootstrap警告框使用方法解析
Jan 13 Javascript
jQuery中 bind的用法简单介绍
Feb 13 Javascript
mpvue跳转页面及注意事项
Aug 03 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
JavaScript 截取字符串代码实例
Sep 05 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
Openlayers测量距离与面积的实现方法
Sep 25 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
SONY SRF-40W电路分析
2021/03/02 无线电
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
Vue+Vux项目实践完整代码
2017/11/30 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
html5 input输入实时检测以及延时优化
2018/07/18 HTML / CSS
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
实习自我鉴定
2013/12/15 职场文书
证婚人经典证婚词
2014/01/09 职场文书
党章学习思想汇报
2014/01/14 职场文书
减负增效提质方案
2014/05/23 职场文书
武当山导游词
2015/02/03 职场文书
项目投资意向书范本
2015/05/09 职场文书
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android