国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 23:59:33
字體:
來源:轉載
供稿:網友
具體表現為:
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種方法,服務器事件可以響應,效果也不錯,可以優先考慮。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苗栗县| 阳谷县| 常德市| 阳朔县| 泽库县| 宽城| 固安县| 凤城市| 阿克陶县| 白水县| 新泰市| 安康市| 襄垣县| 泰安市| 大余县| 平昌县| 元江| 科技| 宣化县| 神木县| 清新县| 嘉定区| 中西区| 南靖县| 砚山县| 虎林市| 苍溪县| 隆林| 龙川县| 铁力市| 彭州市| 扶风县| 潞城市| 安义县| 招远市| 左云县| 昆山市| 日喀则市| 双峰县| 镇原县| 云浮市|