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

最近使用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。

时间: 2025-01-12 21:24:59

jQuery UI Dialog控件中的表单无法正常提交的解决方法_jquery的相关文章

在visual studio2008中treeviewer控件中的节点如何连接数据库?有不用代码的方法么?

问题描述 在visualstudio2008中treeviewer控件中的节点如何连接数据库?有不用代码的方法么?

ThinkPHP表单令牌错误的相关解决方法分析

本文分析了ThinkPHP表单令牌错误的相关解决方法.分享给大家供大家参考,具体如下: 今天在用ThinkPHP做程序的时候,以前用create创建数据的时候,出现了错误提示"表单令牌错误",然后各种百度各种谷歌,得到的网上解答给出了以下的建议 1.清缓存: 用了,我把所有的Cache下的文件都删掉了,并将~app.php和~runtime.php两个文件同时都删掉了,但是没有效果. 2.将TOKEN_ON参数设置为FALSE: 试过了,但是也不行,虽然不提示表单令牌错误了,但是添加到

Ajax提交表单页面刷新很快的解决方法

注:使用ajax 提交表单时 type类型最好不用submit 用button合适 <form> <div class="col-md-9 col-sm-9 col-xs-12 col-md-offset-3"> <input type="button" class="btn btn-info" value="重置" onclick="return resetaa()">

jQuery获取file控件中图片的宽高与大小_jquery

问题 如何判断input file表单里上传的图片的宽高和大小呢? 解决方案 这个时候图片还没真正上传,也不是在页面上展示,不能使用$("#id").width(),$("#id").height()这种方式. 在Stack Overflow找到一个方法获取input file图片文件的宽高: var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { v

假乱真的表单控件:美化原生表单控件

文章描述:这样的模拟需要在兼顾实现设计的同时,还要保证网站的性能和可用性.这时我不禁开始怀念那些看起来平凡却非常实用的原生表单控件.如果用他们几乎可以解决以上所有问题. 在互联网成熟的今天,大家对网站的要求不仅仅在功能实现上,也开始注重视觉设计,多终端用户体验等等.表单控件是web页面上重要的组成元素,具有非常高的功能性.交互设计师为它设计更加方便的操作方式,视觉设计师也会绞尽脑汁设计出更加夺人眼球的视觉展现.可是由于表单控件自身的局限性,不能很好地自定义外表,所以就诞生了一系列的由聪明的前端同

Jquery表单验证失败后不提交的解决方法_jquery

前言 这个问题经过我的整理发现是对事件的认识和js的结构没有了解清楚,return的false在onclick事件中没有返回,所以onclick之后只是显示了false值. 解决方法示例 就是一个普通的表单验证提交: <input type="botton" </code><code>onclick="javascript:checkUserInfo()"</code><code>/> checkUserI

jquery控制表单输入框显示默认值的方法_jquery

本文实例讲述了jquery控制表单输入框显示默认值的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <head> <script language="javascript" src="jquery-1.6.2.min.js"></script> <script type="text/javascript"> $(document)

关于jquery中动态增加select,事件无效的快速解决方法_jquery

近来做项目,用的jquery1.6.2库,当动态增加div 及select时,事件却不起作用. 查了一些资料,发现bind事件:向匹配元素附加一个或更多事件处理器.而live事件:为当前或未来的匹配元素添加一个或多个事件处理器. 其资料如下: [bind和live的区别] live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bin

jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法_jquery

本文实例讲述了jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法.分享给大家供大家参考,具体如下: 一.问题描述: $('#tb-page-list').datagrid({ url: '/BisOrderInfo/GetList', pageNumber: 2, pageSize: 10 }); 当手动设置 pageNumber大于或等于2时,查看请求的方法时,会请求2次,并且第二次的pageNumber等于1: 二.原因所在: jquery.ea