最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery UI的Dialog無法提交問題的解決方法

 更新時(shí)間:2011年01月11日 01:51:17   作者:  
最近在使用jQuery UI的Dialog控件時(shí)發(fā)現(xiàn)如果在此控件放置表單,則所有表單均無法正常提交
具體表現(xiàn)為:
1.提交按鈕失效,點(diǎn)擊后無任何反應(yīng)。
2.即便是使用其它手段使頁面產(chǎn)生提交,服務(wù)器端也無法取到Dialog中的表單數(shù)據(jù)。

原因:JQuery會(huì)把Dialog的元素append到Body里面,而不是form里面。研究了頁面源碼后發(fā)現(xiàn),jQuery UI Dialog控件初始化時(shí)動(dòng)態(tài)生成的HTML元素被添加到頁面的尾部、form元素的后面,而原始的Dialog模板部分(其內(nèi)包含表單元素)也被移到了 動(dòng)態(tài)生成的HTML元素內(nèi)。也就是說,原先在form內(nèi)的表單在Dialog初始化后就被移到form外了,這就導(dǎo)致了Dialog模板內(nèi)表單全部失效。

第1種方法:
不知jQuery UI的Dialog這樣設(shè)計(jì)是一項(xiàng)功能還是一個(gè)bug。為了在Dialog內(nèi)實(shí)現(xiàn)正常的頁面提交,根據(jù)上述分析,我找到一個(gè)簡(jiǎn)單的解決辦法——在 jQuery UI控件的“open”事件處理程序中將Dialog控件動(dòng)態(tài)生成的HTML元素移到form元素內(nèi),代碼如下:
使用代碼:$("#dialog").parent().appendTo("/html/body/form[0]");
或者
$("#dlg").dialog({
open: function () {
$("body > div[role=dialog]").appendTo("form#aspnetForm");
}
});
代碼中的“aspnetForm”是ASP.NET應(yīng)用程序自動(dòng)生成的當(dāng)前頁面form元素ID,使用時(shí)你可以換成自己頁面的form ID。

第2種方法:
加入一個(gè)<div id="dialog_target"></div>這樣的DIV,然后把Dialog寫入這個(gè)DIV里面。
$("#dialog").parent().appendTo("#dialog_target");

第3種方法:
1、修改Dialog的JS代碼,把代碼添加到form中,而不是body里面
2、Dialog內(nèi)部的自定義HTML不使用,而直接加入一個(gè)IFRAME,把里面的HTML移到另外的頁面中,再與父頁面進(jìn)行交互就OK(我使用的就是這種方法,這樣這些獨(dú)立出來的代碼還可以復(fù)用

第2種方法,服務(wù)器事件可以響應(yīng),效果也不錯(cuò),可以優(yōu)先考慮。

相關(guān)文章

最新評(píng)論

南康市| 出国| 商城县| 海兴县| 南澳县| 乌兰浩特市| 衡南县| 南昌市| 东明县| 肥乡县| 灌云县| 东台市| 南阳市| 佛教| 滨州市| 莎车县| 观塘区| 区。| 酒泉市| 三都| 平利县| 嘉鱼县| 娱乐| 育儿| 伊通| 黄梅县| 阿尔山市| 卓资县| 太谷县| 阳原县| 都安| 吉水县| 汾阳市| 吉首市| 建湖县| 图木舒克市| 乌苏市| 淅川县| 潼南县| 庆元县| 比如县|