jQuery UI的Dialog无法提交问题的解决方法


Posted in Javascript onJanuary 11, 2011

具体表现为:
1.提交按钮失效,点击后无任何反应。
2.即便是使用其它手段使页面产生提交,服务器端也无法取到Dialog中的表单数据。

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

第1种方法:
不知jQuery UI的Dialog这样设计是一项功能还是一个bug。为了在Dialog内实现正常的页面提交,根据上述分析,我找到一个简单的解决办法——在 jQuery UI控件的“open”事件处理程序中将Dialog控件动态生成的HTML元素移到form元素内,代码如下:
使用代码:$("#dialog").parent().appendTo("/html/body/form[0]");
或者
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});
代码中的“aspnetForm”是ASP.NET应用程序自动生成的当前页面form元素ID,使用时你可以换成自己页面的form ID。

第2种方法:
加入一个<div id="dialog_target"></div>这样的DIV,然后把Dialog写入这个DIV里面。
$("#dialog").parent().appendTo("#dialog_target");

第3种方法:
1、修改Dialog的JS代码,把代码添加到form中,而不是body里面
2、Dialog内部的自定义HTML不使用,而直接加入一个IFRAME,把里面的HTML移到另外的页面中,再与父页面进行交互就OK(我使用的就是这种方法,这样这些独立出来的代码还可以复用

第2种方法,服务器事件可以响应,效果也不错,可以优先考虑。

Javascript 相关文章推荐
用Juery网页选项卡实现代码
Jun 13 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
Mar 22 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
整理Javascript数组学习笔记
Nov 29 Javascript
Javascript的比较汇总
Jul 25 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
bootstrap警告框使用方法解析
Jan 13 Javascript
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
javascript实现弹幕墙效果
Nov 28 Javascript
Javascript之datagrid查询详解
Sep 15 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 #Javascript
Jquery中获取iframe的代码
Jan 11 #Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 #Javascript
基于jquery的cookie的用法
Jan 10 #Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 #Javascript
IE6中使用position导致页面变形的解决方案(js代码)
Jan 09 #Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 #Javascript
You might like
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python的pip安装以及使用教程
2018/09/18 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Python3内置模块random随机方法小结
2019/07/13 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
小学语文国培感言
2014/03/04 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
服务承诺书格式
2014/05/21 职场文书
应届生自荐书
2014/06/23 职场文书
物流管理专业自荐信
2014/06/23 职场文书
离职报告范文
2014/11/04 职场文书
公务员个人年终总结
2015/02/12 职场文书
四则混合运算教学反思
2016/02/23 职场文书