1.
http://www.5imvc.com/scripts/jbox/jbox-demo.html
2.参数传递时,可以是string或者json
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 名字:<input type="text" id="name1" /> 11 <select> 12 <option>1</option> 13 <option>2</option> 14 <option>3</option> 15 <option>4</option> 16 </select> 17 <input type="button" value="demo00" onclick="demo00();" /> 18 <input type="button" value="demo01" onclick="demo01();" /> 19 <input type="button" value="demo01_2" onclick="demo01_2();" /> 20 21 <input type="button" value="demo02" onclick="demo02();" /> 22 <input type="button" value="demo03" onclick="demo03();" /> 23 <input type="button" value="demo04" onclick="demo04();" /> 24 <input type="button" value="demo042" onclick="demo042();" /> 25 <input type="button" value="demo043" onclick="demo043();" /> 26 <input type="button" value="demo044" onclick="demo044();" /> 27 <input type="button" value="demo045" onclick="demo045();" /> 28 <input type="button" value="demo046" onclick="demo046();" /> 29 <input type="button" value="demo05" onclick="demo05();" /> 30 <input type="button" value="demo06" onclick="demo06();" /> 31 <br /><br /> 32 <input type="button" value="complex01" onclick="complex01();" /> 33 <input type="button" value="demo07" onclick="demo07();" /> 34 <input type="button" value="demo08" onclick="demo08();" /> 35 <input type="button" value="demo09" onclick="demo09();" /> 36 <input type="button" value="demo01_2" onclick="demo01_2();" /> 37 <div style="text-align:center;clear:both"> 38 </div> 39 <link href="jquery-jbox/2.3/Skins/Bootstrap/jbox.min.css" rel="stylesheet" /> 40 <script src="jquery-jbox/2.3/jquery-1.4.2.min.js"></script> 41 <script src="jquery-jbox/2.3/jquery.jBox-2.3.src.js"></script> 42 <script type="text/javascript"> 43 /* jBox 全局设置 */ 44 //var _jBoxConfig = {}; 45 //_jBoxConfig.defaults = { 46 // id: null, /* 在页面中的唯一ID,如果为null则自动为随机ID,一个ID只会显示一个jBox */ 47 // top: '15%', /* 窗口离顶部的距离,可以是百分比或像素(如 '100px') */ 48 // border: 5, /* 窗口的外边框像素大小,必须是0以上的整数 */ 49 // opacity: 0.2, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */ 50 // timeout: 0, /* 窗口显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */ 51 // showType: 'fade', /* 窗口显示的类型,可选值有:show、fade、slide */ 52 // showSpeed: 'fast', /* 窗口显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */ 53 // showIcon: true, /* 是否显示窗口标题的图标,true显示,false不显示,或自定义的CSS样式类名(以为图标为背景) */ 54 // showClose: true, /* 是否显示窗口右上角的关闭按钮 */ 55 // draggable: true, /* 是否可以拖动窗口 */ 56 // dragLimit: true, /* 在可以拖动窗口的情况下,是否限制在可视范围 */ 57 // dragClone: false, /* 在可以拖动窗口的情况下,鼠标按下时窗口是否克隆窗口 */ 58 // persistent: true, /* 在显示隔离层的情况下,点击隔离层时,是否坚持窗口不关闭 */ 59 // showScrolling: true, /* 是否显示浏览的滚动条 */ 60 // ajaxData: {}, /* 在窗口内容使用post:前缀标识的情况下,ajax post的数据,例如:{ id: 1 } 或 "id=1" */ 61 // iframeScrolling: 'auto', /* 在窗口内容使用iframe:前缀标识的情况下,iframe的scrolling属性值,可选值有:'auto'、'yes'、'no' */ 62 63 // title: 'jBox', /* 窗口的标题 */ 64 // width: 350, /* 窗口的宽度,值为'auto'或表示像素的整数 */ 65 // height: 'auto', /* 窗口的高度,值为'auto'或表示像素的整数 */ 66 // bottomText: '', /* 窗口的按钮左边的内容,当没有按钮时此设置无效 */ 67 // buttons: { '确定': 'ok' }, /* 窗口的按钮 */ 68 // buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ 69 // loaded: function (h) { }, /* 窗口加载完成后执行的函数,需要注意的是,如果是ajax或iframe也是要等加载完http请求才算窗口加载完成,参数h表示窗口内容的jQuery对象 */ 70 // submit: function (v, h, f) { return true; }, /* 点击窗口按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ 71 // closed: function () { } /* 窗口关闭后执行的函数 */ 72 //}; 73 //_jBoxConfig.stateDefaults = { 74 // content: '', /* 状态的内容,不支持前缀标识 */ 75 // buttons: { '确定': 'ok' }, /* 状态的按钮 */ 76 // buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ 77 // submit: function (v, h, f) { return true; } /* 点击状态按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ 78 //}; 79 //_jBoxConfig.tipDefaults = { 80 // content: '', /* 提示的内容,不支持前缀标识 */ 81 // icon: 'info', /* 提示的图标,可选值有'info'、'success'、'warning'、'error' */ 82 // top: '40%', /* 提示离顶部的距离,可以是百分比或像素(如 '100px') */ 83 // width: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */ 84 // height: 'auto', /* 提示的高度,值为'auto'或表示像素的整数 */ 85 // opacity: 0, /* 窗口隔离层的透明度,如果设置为0,则不显示隔离层 */ 86 // timeout: 2000, /* 提示显示多少毫秒后自动关闭,必须是大于0的整数 */ 87 // closed: function () { } /* 提示关闭后执行的函数 */ 88 //}; 89 //_jBoxConfig.messagerDefaults = { 90 // content: '', /* 信息的内容,不支持前缀标识 */ 91 // title: 'jBox', /* 信息的标题 */ 92 // icon: 'none', /* 信息图标,值为'none'时为不显示图标,可选值有'none'、'info'、'question'、'success'、'warning'、'error' */ 93 // width: 350, /* 信息的高度,值为'auto'或表示像素的整数 */ 94 // height: 'auto', /* 信息的高度,值为'auto'或表示像素的整数 */ 95 // timeout: 3000, /* 信息显示多少毫秒后自动关闭,如果设置为0,则不自动关闭 */ 96 // showType: 'slide', /* 信息显示的类型,可选值有:show、fade、slide */ 97 // showSpeed: 600, /* 信息显示的速度,可选值有:'slow'、'fast'、表示毫秒的整数 */ 98 // border: 0, /* 信息的外边框像素大小,必须是0以上的整数 */ 99 // buttons: {}, /* 信息的按钮 */ 100 // buttonsFocus: 0, /* 表示第几个按钮为默认按钮,索引从0开始 */ 101 // loaded: function (h) { }, /* 窗口加载完成后执行的函数,参数h表示窗口内容的jQuery对象 */ 102 // submit: function (v, h, f) { return true; }, /* 点击信息按钮后的回调函数,返回true时表示关闭窗口,参数有三个,v表示所点的按钮的返回值,h表示窗口内容的jQuery对象,f表示窗口内容里的form表单键值 */ 103 // closed: function () { } /* 信息关闭后执行的函数 */ 104 //}; 105 //_jBoxConfig.languageDefaults = { 106 // close: '关闭', /* 窗口右上角关闭按钮提示 */ 107 // ok: '确定', /* $.jBox.prompt() 系列方法的“确定”按钮文字 */ 108 // yes: '是', /* $.jBox.warning() 方法的“是”按钮文字 */ 109 // no: '否', /* $.jBox.warning() 方法的“否”按钮文字 */ 110 // cancel: '取消' /* $.jBox.confirm() 和 $.jBox.warning() 方法的“取消”按钮文字 */ 111 //}; 112 113 //$.jBox.setDefaults(_jBoxConfig); 114 115 function demo00() { 116 jBox('id:right-text', { showIcon: 'jbox-title-icon' }); 117 } 118 function demo01() { 119 jBox.tip("Hello jBox"); 120 //jBox.tip("提示关闭后设置输入框为焦点", 'success', { focusId: 'name' }); 121 //jBox.tip("提示关闭后设置输入框为焦点", 'info', { top: '30%', width: 300, focusId: 'name', closed: function () { alert('before focus input...'); } }); 122 } 123 function demo01_2() { 124 jBox.tip("Loading...", 'loading'); 125 // 模拟2秒后完成操作 126 window.setTimeout(function () { jBox.tip('操作成功。', 'success'); }, 2000); 127 } 128 function demo02() { 129 jBox.alert("Hello jBox"); 130 //jBox.alert("Hello jBox", 'Title', { top: '250px', width: 400, height: 150 }); 131 } 132 function demo03() { 133 var submit = function (v, h, f) { 134 if (v == true) 135 jBox.tip("恩", 'success'); 136 else 137 jBox.tip("好吖", 'success'); 138 return true; 139 }; 140 //内容, 标题 函数 参数 141 jBox.confirm("猪,做我女朋友吧?", "表白提示", submit, { id: 'hahaha', showScrolling: false, buttons: { '恩': true, '好吖': false } }); 142 } 143 function demo04() { 144 jBox.open("iframe:http://www.baidu.com", "百度一下", 800, 350); 145 } 146 function demo042() { 147 jBox.open("iframe:http://www.baidu.com", null, 800, 350, { 148 buttons: { '关闭': true }, iframeScrolling: 'no', showClose: false, loaded: function (h) { 149 jBox.tip('loaded'); 150 } 151 }); 152 } 153 function demo043() { 154 jBox.open("iframe:http://www.baidu.com", "百度一下", 800, 350, { buttons: { '关闭': true } }); 155 } 156 function demo044() { 157 jBox.open("get:ajax.html", null, 'auto', 'auto', { buttons: {} }); 158 } 159 function demo045() { 160 jBox.open("get:ajax.html", "Ajax Get", 600, 250, { buttons: {} }); // 161 } 162 function demo046() { 163 jBox.open("get:ajax.html", "Ajax Get", 'auto', 'auto', { buttons: { '关闭': true }, persistent: false }); 164 } 165 function demo05() { 166 var html = "<div style='padding:10px;'>输入姓名:<input type='text' id='yourname' name='yourname' value='小明' /></div>"; 167 var submit = function (v, h, f) { 168 if (f.yourname == '') { 169 jBox.tip("请输入您的姓名。", 'error', { focusId: "yourname" }); // 关闭设置 yourname 为焦点 170 return false; 171 } 172 173 jBox.tip("你叫:" + f.yourname); 174 //jBox.tip("你叫:" + h.find("#yourname").val()); 175 //jBox.tip("你叫:" + h.find(":input[name='yourname']").val()); 176 177 return true; 178 }; 179 180 jBox(html, { 181 title: "你叫什么名字?", submit: submit, loaded: function (h) { 182 //jBox.tip('loaded'); 183 jBox.tip(h.find("#yourname").val()); 184 } 185 }); 186 } 187 188 function demo06() { 189 var submit = function (v, h, f) { 190 if (v == 'yes') { 191 jBox.tip('已保存。'); 192 } 193 if (v == 'no') { 194 jBox.tip('没保存。'); 195 } 196 if (v == 'cancel') { 197 jBox.tip('已取消。'); 198 } 199 200 return true; 201 }; 202 203 jBox.warning("内容已修改,是否保存?", "提示", submit); 204 } 205 function demo07() { 206 jBox.messager("messager", "my title", 3000, { width: 250, showType: 'slide', icon: 'info' }); 207 } 208 function demo08() { 209 jBox.messager("messager 3", "my title", 3000, { width: 250, showType: 'fade' }); 210 } 211 function demo09() { 212 jBox.messager("messager 2", "my title", 3000, { width: 250, showType: 'show' }); 213 } 214 215 216 function complex01() { 217 var html1 = '<div class="msg-div">' + 218 '<p>购买数量:</p><div class="field"><input type="text" id="amount" name="amount" style="width:75px;" value="1" /></div>' + 219 '<p>收货地址:</p><div class="field"><textarea id="address" name="address"></textarea></div>' + 220 '<div class="errorBlock" style="display: none;"></div>' + 221 '</div>'; 222 223 var html2 = '<div class="msg-div">' + 224 '<p>给卖家留言:<span style="color:gray">(选填,可以告诉卖家您对商品的特殊要求)</span></p><div class="field"><textarea id="message" name="message"></textarea></div>' + 225 '</div>'; 226 227 var data = {}; 228 var states = {}; 229 states.state1 = { 230 content: html1, 231 buttons: { '下一步': 1, '取消': 0 }, 232 submit: function (v, h, f) { 233 if (v == 0) { 234 return true; // close the window 235 } 236 else { 237 h.find('.errorBlock').hide('fast', function () { $(this).remove(); }); 238 239 data.amount = f.amount; //或 h.find('#amount').val(); 240 if (data.amount == '' || parseInt(data.amount) < 1) { 241 $('<div class="errorBlock" style="display: none;">请输入购买数量!</div>').prependTo(h).show('slow'); 242 return false; 243 } 244 data.address = f.address; 245 if (data.address == '') { 246 $('<div class="errorBlock" style="display: none;">请输入收货地址!</div>').prependTo(h).show('slow'); 247 return false; 248 } 249 250 jBox.nextState(); //go forward 251 // 或 jBox.goToState('state2') 252 } 253 254 return false; 255 } 256 }; 257 states.state2 = { 258 content: html2, 259 buttons: { '上一步': -1, '提交': 1, '取消': 0 }, 260 buttonsFocus: 1, // focus on the second button 261 submit: function (v, o, f) { 262 if (v == 0) { 263 return true; // close the window 264 } else if (v == -1) { 265 jBox.prevState() //go back 266 // 或 jBox.goToState('state1'); 267 } 268 else { 269 data.message = f.message; 270 271 // do ajax request here 272 jBox.nextState('<div class="msg-div">正在提交...</div>'); 273 // 或 jBox.goToState('state3', '<div class="msg-div">正在提交...</div>') 274 275 // asume that the ajax is done, than show the result 276 var msg = []; 277 msg.push('<div class="msg-div">'); 278 msg.push('<p>下面是提交的数据</p>'); 279 for (var p in data) { 280 msg.push('<p>' + p + ':' + data[p] + '</p>'); 281 } 282 msg.push('</div>'); 283 window.setTimeout(function () { jBox.nextState(msg.join('')); }, 2000); 284 } 285 286 return false; 287 } 288 }; 289 states.state3 = { 290 content: '', 291 buttons: {} // no buttons 292 }; 293 states.state4 = { 294 content: '', 295 buttons: { '确定': 0 } 296 }; 297 298 jBox.open(states, '提交订单', 450, 'auto'); 299 // 或 jBox(states, { width: 450, height: 'auto', title: '提交订单' }); 300 } 301 302 303 function demo10() { 304 var html1 = '<div class="msg-div">' + 305 '<p>购买数量:</p><div class="field"><input type="text" id="amount" name="amount" style="width:75px;" value="1" /></div>' + 306 '<p></p><div class="field"><input type="button" value="提交" /></div>' + 307 '</div>'; 308 $.jBox.open(html1, "my title", 300, 300, { showType: 'show' }); 309 } 310 311 312 $(function () { 313 314 315 }); 316 317 </script> 318 </body> 319 </html>