实现弹框,比较精美的jQuery.ui.*;来实现,弹框显示:
jsp页面代码[jqueryuidialog.jsp]:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"> <title>jQuery UI dialog</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/tsjs/jqueryui/css/jquery.ui.all.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/tsjs/jqueryui/css/demos.css"> <style type="text/css"> .ui-widget-header{background-image:none;background-color:#EFF9FE} .ui-widget-header{font-size:15px;} </style> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jquery-1.11.1.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryuidialog.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.bgiframe-2.1.2.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.core.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.widget.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.mouse.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.button.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.draggable.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.position.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.dialog.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/jquery.ui.effect.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/tsjs/jqueryui/js/demo.js"></script> </head> <body> <center> <div><input type="text" style="border:0px solid #FFFFFF;" id="dialogmsg" name="dialogmsg" value="Dialog" /></div> <div><input type="button" id="dialogbt" name="dialogbt" value="Dialog" /></div> </center> <div id="dialog"></div> </body> </html>
js代码:
$(document).ready(function(){ $("#dialogmsg").val("请点击确认dialog"); $("#dialogbt").click(function(){ var msghtml = "<table>\n" + " <tr>\n" + " <td rowspan=\"2\"><img src=\"tsimg/loading.gif\" title=\"maven\" /></td>\n" + " <td>可可爱</td>\n" + " </tr>\n" + " <tr>\n" + " <td>474893293223324588345</td>\n" + " </tr>\n" + "</table>"; dialogS(msghtml,function(){ $("#dialogmsg").val("确认完毕"); }); }); }); function dialogS(msg,callback){ $("#dialog").html(msg); $("#dialog").dialog({ autoOpen:true, height:350, width:400, modal:true, title:'确认', buttons:{ "[yes]":function(){ $(this).dialog("close"); callback(); }, "[no]":function(){ $(this).dialog("close"); } }, close:function(){ $(this).dialog("close"); } }); }
注:此方式实现后,ie9上代码,弹框不居中,查阅资料,自己F12调试查找:
因为:ui-dialog下的inner style中的left=-2px;导致的,修改后发现可以居中,但没办法深入修改插件,内部style,还要兼容多种浏览器。
最终解决:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">修改为<!DOCTYPE html>居中显示了。(“可能”在特殊情况,提交后台数据为null)
效果图: