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 text()要注意啦
Oct 30 Javascript
基于jquery+thickbox仿校内登录注册框
Jun 07 Javascript
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
Javscript调用iframe框架页面中函数的方法
Nov 01 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
Sep 04 Javascript
es6在react中的应用代码解析
Nov 08 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
May 03 Javascript
layui实现数据分页功能
Jul 27 Javascript
layer.alert自定义关闭回调事件的方法
Sep 27 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
创建nuxt.js项目流程图解
Mar 13 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
用PHP函数解决SQL injection
2006/10/09 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
用javascript做拖动布局的思路
2008/05/31 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
微信小程序分页加载的实例代码
2017/07/11 Javascript
jquery-file-upload 文件上传带进度条效果
2017/11/21 jQuery
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Django如何实现上传图片功能
2019/08/16 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python isinstance函数用法详解
2020/02/13 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
应付会计岗位职责
2013/12/12 职场文书
自我鉴定四大框架
2014/01/17 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python