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>