From c00eb73eb8a85605cc7a861153d6db8eaa6b1844 Mon Sep 17 00:00:00 2001 From: iotcat Date: Fri, 10 Jul 2020 10:29:42 +0800 Subject: [PATCH] gg --- css/index.css | 251 ++++++++++++ css/jquery.css | 50 +++ css/layer.css | 357 +++++++++++++++++ index.html | 65 +++ js/autocomplete.js | 124 ++++++ js/data.js | 60 +++ js/index.js | 61 +++ js/jquery.autocomplete.js | 808 ++++++++++++++++++++++++++++++++++++++ js/jquery.min.js | 4 + js/layer.js | 2 + index.php => s/index.php | 2 +- 11 files changed, 1783 insertions(+), 1 deletion(-) create mode 100644 css/index.css create mode 100644 css/jquery.css create mode 100644 css/layer.css create mode 100644 index.html create mode 100644 js/autocomplete.js create mode 100644 js/data.js create mode 100644 js/index.js create mode 100644 js/jquery.autocomplete.js create mode 100644 js/jquery.min.js create mode 100644 js/layer.js rename index.php => s/index.php (94%) diff --git a/css/index.css b/css/index.css new file mode 100644 index 0000000..82f37dc --- /dev/null +++ b/css/index.css @@ -0,0 +1,251 @@ +html,body{ + width: 100%; + font-family: "微软雅黑"; + font-size: 1em; + background: #1f2126; + color: #c2b483; + margin: 0; + padding: 0; +} +img{ + width: 100%; + margin: 0; + padding: 0; +} + +/*index.html*/ +.main_div{ + width: 100%; +} +.top_div{ + width: 100%; + background: #050c1e; + border-top: 1px solid #050C1E; + border-bottom: 1px solid #050C1E; + border-image: url(../img/line.png) 1 1 1 1; + overflow: hidden; +} +.logo{ + width: 40%; + margin: 10px auto; +} +.top_text{ + font-size: 1.2em; + text-align: center; + font-weight: 400; + margin-bottom: 15px; +} +.bottom_div{ + width: 100%; +} +.bottom_text{ + text-align: center; + font-size: 1em; + margin-top: 15px; +} +.park_action{ + width: 100%; + margin-top: 30px; + overflow: hidden; +} +.add_park{ + width: 42.5%; + margin-left: 5%; + line-height: 40px; + font-size: 1.3em; + color: #C2B483; + text-align: center; + float: left; + border: 1px solid #C2B483; + border-radius: 5px; +} +.del_park{ + width: 42.5%; + margin-right: 5%; + line-height: 40px; + font-size: 1.3em; + color: #C2B483; + text-align: center; + float: right; + border: 1px solid #C2B483; + border-radius: 5px; +} +.car_list{ + width: 100%; + overflow: hidden; +} +.car_name:nth-child(odd){ + width: 42.5%; + margin-left: 5%; + margin-top: 20px; + line-height: 40px; + font-size: 1.3em; + text-align: center; + float: left; + border: 1px solid #C2B483; + border-radius: 5px; +} +.car_name:nth-child(even){ + width: 42.5%; + margin-right: 5%; + margin-top: 20px; + line-height: 40px; + font-size: 1.3em; + text-align: center; + float: right; + border: 1px solid #C2B483; + border-radius: 5px; +} +.park_record{ + width: 90%; + margin: 20px auto; + background: #C2B483; + font-size: 1.2em; + text-align: center; + line-height: 40px; + color: #1F2126; + border-radius: 5px; +} +/*add_park.html*/ +.car_input{ + width: 90%; + margin: 0 auto; + margin-top: 30px; + background: #050C1E; + border: 1px solid #C2B483; + border-radius: 5px; +} +.car_input input{ + width: 100%; + line-height: 40px; + border: none; + border-radius: 5px; + text-align: center; + font-size: 1.2em; + color: #C2B483; + background: #050C1E; + -webkit-appearance: none; +} +.next_step{ + width: 90%; + margin: 40px auto; + background: #C2B483; + font-size: 1.2em; + text-align: center; + line-height: 40px; + color: #1F2126; + border-radius: 5px; +} +#word{ + background: #1F2126; +} +option{ + background: #1F2126; +} +/*del_park.html*/ +.del_text{ + text-align: center; + font-size: 1em; + margin-top: 15px; + margin-bottom: 30px; +} +/*pay_park.html*/ +.pay_main_div{ + width: 100%; +} +.top_car_name{ + width: 95%; + background: #050C1E; + line-height: 60px; + padding-left: 5%; +} +.pay_car_name{ + font-size: 1.1em; +} +.count_pay,.discount,.select_time{ + width:100%; + line-height: 30px; + background: #1f2126; +} +.need_pay,.park_time{ + width:100%; + line-height: 30px; + background: #050C1E; +} +.info_title{ + width: 40%; + line-height: 35px; + padding-left: 5%; + float: left; +} +.info_text{ + width: 50%; + line-height: 35px; + padding-right: 5%; + text-align: right; + float: right; +} +.pay_submit{ + width: 90%; + margin: 80px auto; + line-height: 40px; + text-align: center; + background: #C2B483; + color: #1F2126; + border: 1px solid #C2B483; + border-radius: 5px; +} +/*park_record.html*/ +.record_list{ + width: 100%; + margin-top: 20px; +} +.record_info{ + width: 94%; + margin: 0 auto; + border: 1px solid #C2B483; + border-radius: 5px; + overflow: hidden; +} +.record_title{ + width: 100%; + background: #C2B483; + color: #1F2126; + line-height: 40px; + overflow: hidden; +} +.record_car_name{ + width: 45%; + margin-left: 5%; + float: left; +} +.record_date{ + width: 45%; + text-align: right; + float: left; +} +.record_detail{ + width: 100%; +} +.detail_li{ + width: 95%; + padding-left: 5%; + line-height: 30px; +} +.last_pay{ + font-weight: bold; +} +.pay_record_action{ + width: 100%; + margin-top: 30px; +} +.before_page,.next_page{ + width: 42.5%; + float: left; + text-align: center; + line-height: 40px; + background: #C2B483; + color: #1F2126; + margin-left: 5%; + border-radius: 5px; +} diff --git a/css/jquery.css b/css/jquery.css new file mode 100644 index 0000000..02e4dab --- /dev/null +++ b/css/jquery.css @@ -0,0 +1,50 @@ +.ac_results { + width: 80%; + padding: 0px; + border: 1px solid #c2b483; + background-color: #1F2126; + overflow: hidden; + z-index: 99999; +} + +.ac_results ul { + width: 100%; + list-style-position: outside; + list-style: none; + padding: 0; + margin: 0; +} + +.ac_results li +{ + margin: 0px; + padding: 5px 8px; + cursor: default; + display: block; + /* + if width will be 100% horizontal scrollbar will apear + when scroll mode will be used + */ + /*width: 100%;*/ + font: menu; + font-size: 1em; + /* + it is very important, if line-height not setted or setted + in relative units scroll will be broken in firefox + */ + line-height: 25px; + overflow: hidden; +} + +.ac_loading { + background: white url('indicator.gif') right center no-repeat; +} + +.ac_odd { + background-color: #1F2126; +} + +.ac_over { + background-color: #050C1E; + color: #c2b483; +} diff --git a/css/layer.css b/css/layer.css new file mode 100644 index 0000000..6a8b7bb --- /dev/null +++ b/css/layer.css @@ -0,0 +1,357 @@ +.layui-m-layer { + position: relative; + z-index: 19891014 +} + +.layui-m-layer * { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +.layui-m-layermain, +.layui-m-layershade { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100% +} + +.layui-m-layershade { + background-color: rgba(0, 0, 0, .7); + pointer-events: auto +} + +.layui-m-layermain { + display: table; + font-family: "microsoft yahei", Helvetica, arial, sans-serif; + pointer-events: none +} + +.layui-m-layermain .layui-m-layersection { + display: table-cell; + vertical-align: middle; + text-align: center +} + +.layui-m-layerchild { + position: relative; + display: inline-block; + text-align: left; + background-color: #fff; + font-size: 14px; + border-radius: 5px; + box-shadow: 0 0 8px rgba(0, 0, 0, .1); + pointer-events: auto; + -webkit-overflow-scrolling: touch; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-duration: .2s; + animation-duration: .2s +} + +@-webkit-keyframes layui-m-anim-scale { + 0% { + opacity: 0; + -webkit-transform: scale(.5); + transform: scale(.5) + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1) + } +} + +@keyframes layui-m-anim-scale { + 0% { + opacity: 0; + -webkit-transform: scale(.5); + transform: scale(.5) + } + 100% { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1) + } +} + +.layui-m-anim-scale { + animation-name: layui-m-anim-scale; + -webkit-animation-name: layui-m-anim-scale +} + +@-webkit-keyframes layui-m-anim-up { + 0% { + opacity: 0; + -webkit-transform: translateY(800px); + transform: translateY(800px) + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0) + } +} + +@keyframes layui-m-anim-up { + 0% { + opacity: 0; + -webkit-transform: translateY(800px); + transform: translateY(800px) + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0) + } +} + +.layui-m-anim-up { + -webkit-animation-name: layui-m-anim-up; + animation-name: layui-m-anim-up +} + +.layui-m-layer0 .layui-m-layerchild { + width: 90%; + max-width: 640px +} + +.layui-m-layer1 .layui-m-layerchild { + border: none; + border-radius: 0 +} + +.layui-m-layer2 .layui-m-layerchild { + width: auto; + max-width: 260px; + min-width: 40px; + border: none; + background: 0 0; + box-shadow: none; + color: #fff +} + +.layui-m-layerchild h3 { + padding: 0 10px; + height: 60px; + line-height: 60px; + font-size: 16px; + font-weight: 400; + border-radius: 5px 5px 0 0; + text-align: center +} + +.layui-m-layerbtn span, +.layui-m-layerchild h3 { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap +} + +.layui-m-layercont { + padding: 50px 30px; + line-height: 22px; + text-align: center +} + +.layui-m-layer1 .layui-m-layercont { + padding: 0; + text-align: left +} + +.layui-m-layer2 .layui-m-layercont { + text-align: center; + padding: 0; + line-height: 0 +} + +.layui-m-layer2 .layui-m-layercont i { + width: 25px; + height: 25px; + margin-left: 8px; + display: inline-block; + background-color: #fff; + border-radius: 100%; + -webkit-animation: layui-m-anim-loading 1.4s infinite ease-in-out; + animation: layui-m-anim-loading 1.4s infinite ease-in-out; + -webkit-animation-fill-mode: both; + animation-fill-mode: both +} + +.layui-m-layerbtn, +.layui-m-layerbtn span { + position: relative; + text-align: center; + border-radius: 0 0 5px 5px +} + +.layui-m-layer2 .layui-m-layercont p { + margin-top: 20px +} + +@-webkit-keyframes layui-m-anim-loading { + 0%, + 100%, + 80% { + transform: scale(0); + -webkit-transform: scale(0) + } + 40% { + transform: scale(1); + -webkit-transform: scale(1) + } +} + +@keyframes layui-m-anim-loading { + 0%, + 100%, + 80% { + transform: scale(0); + -webkit-transform: scale(0) + } + 40% { + transform: scale(1); + -webkit-transform: scale(1) + } +} + +.layui-m-layer2 .layui-m-layercont i:first-child { + margin-left: 0; + -webkit-animation-delay: -.32s; + animation-delay: -.32s +} + +.layui-m-layer2 .layui-m-layercont i.layui-m-layerload { + -webkit-animation-delay: -.16s; + animation-delay: -.16s +} + +.layui-m-layer2 .layui-m-layercont>div { + line-height: 22px; + padding-top: 7px; + margin-bottom: 20px; + font-size: 14px +} + +.layui-m-layerbtn { + display: box; + display: -moz-box; + display: -webkit-box; + width: 100%; + height: 50px; + line-height: 50px; + font-size: 0; + border-top: 1px solid #D0D0D0; + background-color: #F2F2F2 +} + +.layui-m-layerbtn span { + display: block; + -moz-box-flex: 1; + box-flex: 1; + -webkit-box-flex: 1; + font-size: 14px; + cursor: pointer +} + +.layui-m-layerbtn span[yes] { + color: #fd482c +} + +.layui-m-layerbtn span[no] { + border-right: 1px solid #1F2126; + border-radius: 0 0 0 5px +} + +.layui-m-layerbtn span:active { + background-color: #F6F6F6 +} + +.layui-m-layerend { + position: absolute; + right: 7px; + top: 10px; + width: 30px; + height: 30px; + border: 0; + font-weight: 400; + background: 0 0; + cursor: pointer; + -webkit-appearance: none; + font-size: 30px +} + +.layui-m-layerend::after, +.layui-m-layerend::before { + position: absolute; + left: 5px; + top: 15px; + content: ''; + width: 18px; + height: 1px; + background-color: #999; + transform: rotate(45deg); + -webkit-transform: rotate(45deg); + border-radius: 3px +} + +.layui-m-layerend::after { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg) +} + +body .layui-m-layer .layui-m-layer-footer { + position: fixed; + width: 95%; + max-width: 100%; + margin: 0 auto; + left: 0; + right: 0; + bottom: 10px; + background: 0 0 +} + +.layui-m-layer-footer .layui-m-layercont { + font-size: 1.1em; + padding: 15px; + border-radius: 5px 5px 0 0; + background-color: #c2b483; + color: #1F2126; +} + +.layui-m-layer-footer .layui-m-layerbtn { + display: block; + height: auto; + background: 0 0; + border-top: none +} + +.layui-m-layer-footer .layui-m-layerbtn span { + background-color: #1F2126 +} + +.layui-m-layer-footer .layui-m-layerbtn span[no] { + color: #40AFFE; + border-top: 1px solid #1F2126; + border-radius: 0 0 5px 5px +} + +.layui-m-layer-footer .layui-m-layerbtn span[yes] { + margin-top: 10px; + border-radius: 5px +} + +body .layui-m-layer .layui-m-layer-msg { + width: auto; + max-width: 90%; + margin: 0 auto; + bottom: -150px; + background-color: rgba(0, 0, 0, .7); + color: #c2b483 +} + +.layui-m-layer-msg .layui-m-layercont { + padding: 10px 20px +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..9dd6d32 --- /dev/null +++ b/index.html @@ -0,0 +1,65 @@ + + + + + Ushio短链生成器 + + + + + + + + + +
+







+
+
+ 请输入需要缩短的链接: +
+
+ +
+
+ 生成 +
+
+ +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/js/autocomplete.js b/js/autocomplete.js new file mode 100644 index 0000000..97a630f --- /dev/null +++ b/js/autocomplete.js @@ -0,0 +1,124 @@ + +$(function () { + + //2毫秒之后显示支付宝服务窗标题 +// var AlipayJSBridgeIntervalValue = setTimeout(function () { +// if (typeof (AlipayJSBridge) != 'undefined') { +// clearTimeout(AlipayJSBridgeIntervalValue); +// AlipayJSBridge.call("showTitlebar"); +// AlipayJSBridge.call("setTitle", { +// title: document.title +// }); +// } +// }, 100); + + //自动填充车牌数组 + $('#car_name').autocomplete(data, + { + max: 10, //列表里的条目数 + minChars: 1, //自动完成激活之前填入的最小字符 + width: 120, //提示的宽度,溢出隐藏 + scrollHeight: 180, //提示的高度,溢出显示滚动条 + matchCase: false, //比较是否开启大小写敏感开关 + matchContains: true, //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示 + autoFill: false, //自动填充 //匹配的项所要发生的事件 + formatItem: function (row, i, max) + { + //row表示每一行的数据对象,i表示每一行的编号 max表示总的数据行数 + return row.value + "[" + row.name + "]"; + } + }).result(function (event, row, formatted) { + $('#car_name').val(row.value); + }); + + //车牌栏位有输入时触发的事件 + $("#car_name").keydown(function () { + if (event.keyCode >= 65 && event.keyCode <= 90) { + var txt = ""; + switch (event.keyCode) { + case 65: + txt = "A"; + break; + case 66: + txt = "B"; + break; + case 67: + txt = "C"; + break; + case 68: + txt = "D"; + break; + case 69: + txt = "E"; + break; + case 70: + txt = "F"; + break; + case 71: + txt = "G"; + break; + case 72: + txt = "H"; + break; + case 73: + txt = "I"; + break; + case 74: + txt = "J"; + break; + case 75: + txt = "K"; + break; + case 76: + txt = "L"; + break; + case 77: + txt = "M"; + break; + case 78: + txt = "N"; + break; + case 79: + txt = "O"; + break; + case 80: + txt = "P"; + break; + case 81: + txt = "Q"; + break; + case 82: + txt = "R"; + break; + case 83: + txt = "S"; + break; + case 84: + txt = "T"; + break; + case 85: + txt = "U"; + break; + case 86: + txt = "V"; + break; + case 87: + txt = "W"; + break; + case 88: + txt = "X"; + break; + case 89: + txt = "Y"; + break; + case 90: + txt = "Z"; + break; + + } + $('#car_name').val($('#car_name').val() + txt); + window.event.keyCode = 0; + event.returnValue = false; + } + }); +}); diff --git a/js/data.js b/js/data.js new file mode 100644 index 0000000..6eefba4 --- /dev/null +++ b/js/data.js @@ -0,0 +1,60 @@ +var data=[{name:"JA",value:"京A"},{name:"JB",value:"京B"},{name:"JC",value:"京C"},{name:"JE",value:"京E"},{name:"JF",value:"京F"},{name:"JH",value:"京H"},{name:"JJ",value:"京J"}, +{name:"JK",value:"京K"},{name:"JL",value:"京L"},{name:"JM",value:"京M"},{name:"JN",value:"京N"},{name:"JP",value:"京P"},{name:"JG",value:"京G"},{name:"JY",value:"京Y"}, +{name:"JP",value:"京P"},{name:"JO",value:"京O"},{name:"JD",value:"京D"},{name:"JA",value:"津A"},{name:"JB",value:"津B"},{name:"JC",value:"津C"},{name:"JD",value:"津D"}, +{name:"JE",value:"津E"},{name:"JF",value:"津F"},{name:"JG",value:"津G"},{name:"JH",value:"津H"},{name:"JJ",value:"津J"},{name:"JK",value:"津K"},{name:"JL",value:"津L"}, +{name:"JM",value:"津M"},{name:"JN",value:"津N"},{name:"JP",value:"津P"},{name:"JQ",value:"津Q"},{name:"HA",value:"沪A"},{name:"HB",value:"沪B"},{name:"HD",value:"沪D"}, +{name:"HE",value:"沪E"},{name:"HF",value:"沪F"},{name:"HG",value:"沪G"},{name:"HH",value:"沪H"},{name:"HJ",value:"沪J"},{name:"HK",value:"沪K"},{name:"HL",value:"沪L"}, +{name:"HM",value:"沪M"},{name:"HN",value:"沪N"},{name:"HC",value:"沪C"},{name:"HAX",value:"沪AX"},{name:"HBX",value:"沪BX"},{name:"HDX",value:"沪DX"},{name:"YA",value:"渝A"}, +{name:"YB",value:"渝B"},{name:"YC",value:"渝C"},{name:"YF",value:"渝F"},{name:"YG",value:"渝G"},{name:"YH",value:"渝H"},{name:"JA",value:"冀A"},{name:"JB",value:"冀B"}, +{name:"JC",value:"冀C"},{name:"JD",value:"冀D"},{name:"JE",value:"冀E"},{name:"JF",value:"冀F"},{name:"JG",value:"冀G"},{name:"JH",value:"冀H"},{name:"JJ",value:"冀J"}, +{name:"JR",value:"冀R"},{name:"JT",value:"冀T"},{name:"YA",value:"豫A"},{name:"YB",value:"豫B"},{name:"YC",value:"豫C"},{name:"YD",value:"豫D"},{name:"YE",value:"豫E"}, +{name:"YF",value:"豫F"},{name:"YG",value:"豫G"},{name:"YH",value:"豫H"},{name:"YJ",value:"豫J"},{name:"YK",value:"豫K"},{name:"YL",value:"豫L"},{name:"YM",value:"豫M"}, +{name:"YN",value:"豫N"},{name:"YP",value:"豫P"},{name:"YQ",value:"豫Q"},{name:"YR",value:"豫R"},{name:"YS",value:"豫S"},{name:"YU",value:"豫U"},{name:"YA",value:"云A"}, +{name:"YC",value:"云C"},{name:"YD",value:"云D"},{name:"YE",value:"云E"},{name:"YF",value:"云F"},{name:"YG",value:"云G"},{name:"YH",value:"云H"},{name:"YJ",value:"云J"}, +{name:"YL",value:"云L"},{name:"YK",value:"云K"},{name:"YM",value:"云M"},{name:"YN",value:"云N"},{name:"YP",value:"云P"},{name:"YQ",value:"云Q"},{name:"YR",value:"云R"}, +{name:"YS",value:"云S"},{name:"LA",value:"辽A"},{name:"LB",value:"辽B"},{name:"LC",value:"辽C"},{name:"LD",value:"辽D"},{name:"LE",value:"辽E"},{name:"LF",value:"辽F"}, +{name:"LG",value:"辽G"},{name:"LH",value:"辽H"},{name:"LJ",value:"辽J"},{name:"LK",value:"辽K"},{name:"LL",value:"辽L"},{name:"LM",value:"辽M"},{name:"LN",value:"辽N"}, +{name:"LP",value:"辽P"},{name:"LO",value:"辽O"},{name:"HA",value:"黑A"},{name:"HB",value:"黑B"},{name:"HC",value:"黑C"},{name:"HD",value:"黑D"},{name:"HE",value:"黑E"}, +{name:"HF",value:"黑F"},{name:"HG",value:"黑G"},{name:"HH",value:"黑H"},{name:"HJ",value:"黑J"},{name:"HK",value:"黑K"},{name:"HL",value:"黑L"},{name:"HM",value:"黑M"}, +{name:"HN",value:"黑N"},{name:"HP",value:"黑P"},{name:"HR",value:"黑R"},{name:"XA",value:"湘A"},{name:"XB",value:"湘B"},{name:"XC",value:"湘C"},{name:"XD",value:"湘D"}, +{name:"XE",value:"湘E"},{name:"XF",value:"湘F"},{name:"XG",value:"湘G"},{name:"XH",value:"湘H"},{name:"XJ",value:"湘J"},{name:"XK",value:"湘K"},{name:"XL",value:"湘L"}, +{name:"XM",value:"湘M"},{name:"XN",value:"湘N"},{name:"XU",value:"湘U"},{name:"WA",value:"皖A"},{name:"WB",value:"皖B"},{name:"WC",value:"皖C"},{name:"WD",value:"皖D"}, +{name:"WE",value:"皖E"},{name:"WF",value:"皖F"},{name:"WG",value:"皖G"},{name:"WH",value:"皖H"},{name:"WJ",value:"皖J"},{name:"WK",value:"皖K"},{name:"WL",value:"皖L"}, +{name:"WM",value:"皖M"},{name:"WN",value:"皖N"},{name:"WP",value:"皖P"},{name:"WR",value:"皖R"},{name:"WS",value:"皖S"},{name:"LA",value:"鲁A"},{name:"LB",value:"鲁B"}, +{name:"LC",value:"鲁C"},{name:"LD",value:"鲁D"},{name:"LE",value:"鲁E"},{name:"LF",value:"鲁F"},{name:"LG",value:"鲁G"},{name:"LH",value:"鲁H"},{name:"LJ",value:"鲁J"}, +{name:"LK",value:"鲁K"},{name:"LL",value:"鲁L"},{name:"LM",value:"鲁M"},{name:"LN",value:"鲁N"},{name:"LP",value:"鲁P"},{name:"LQ",value:"鲁Q"},{name:"LR",value:"鲁R"}, +{name:"LS",value:"鲁S"},{name:"LU",value:"鲁U"},{name:"LV",value:"鲁V"},{name:"LW",value:"鲁W"},{name:"LY",value:"鲁Y"},{name:"SA",value:"苏A"},{name:"SB",value:"苏B"}, +{name:"SC",value:"苏C"},{name:"SD",value:"苏D"},{name:"SE",value:"苏E"},{name:"SF",value:"苏F"},{name:"SG",value:"苏G"},{name:"SH",value:"苏H"},{name:"SJ",value:"苏J"}, +{name:"SK",value:"苏K"},{name:"SL",value:"苏L"},{name:"SM",value:"苏M"},{name:"SN",value:"苏N"},{name:"GA",value:"赣A"},{name:"GB",value:"赣B"},{name:"GC",value:"赣C"}, +{name:"GD",value:"赣D"},{name:"GE",value:"赣E"},{name:"GF",value:"赣F"},{name:"GG",value:"赣G"},{name:"GH",value:"赣H"},{name:"GJ",value:"赣J"},{name:"GK",value:"赣K"}, +{name:"GL",value:"赣L"},{name:"GM",value:"赣M"},{name:"GO",value:"赣O"},{name:"GS",value:"赣S"},{name:"ZA",value:"浙A"},{name:"ZB",value:"浙B"},{name:"ZC",value:"浙C"}, +{name:"ZD",value:"浙D"},{name:"ZE",value:"浙E"},{name:"ZF",value:"浙F"},{name:"ZG",value:"浙G"},{name:"ZH",value:"浙H"},{name:"ZJ",value:"浙J"},{name:"ZK",value:"浙K"}, +{name:"ZL",value:"浙L"},{name:"YA",value:"粤A"},{name:"YB",value:"粤B"},{name:"YC",value:"粤C"},{name:"YD",value:"粤D"},{name:"YE",value:"粤E"},{name:"YF",value:"粤F"}, +{name:"YG",value:"粤G"},{name:"YH",value:"粤H"},{name:"YJ",value:"粤J"},{name:"YK",value:"粤K"},{name:"YL",value:"粤L"},{name:"YM",value:"粤M"},{name:"YN",value:"粤N"}, +{name:"YP",value:"粤P"},{name:"YQ",value:"粤Q"},{name:"YR",value:"粤R"},{name:"YS",value:"粤S"},{name:"YT",value:"粤T"},{name:"YU",value:"粤U"},{name:"YV",value:"粤V"}, +{name:"YW",value:"粤W"},{name:"YX",value:"粤X"},{name:"YY",value:"粤Y"},{name:"YZ",value:"粤Z"},{name:"EA",value:"鄂A"},{name:"EB",value:"鄂B"},{name:"EC",value:"鄂C"}, +{name:"ED",value:"鄂D"},{name:"EE",value:"鄂E"},{name:"EF",value:"鄂F"},{name:"EG",value:"鄂G"},{name:"EH",value:"鄂H"},{name:"EJ",value:"鄂J"},{name:"EK",value:"鄂K"}, +{name:"EL",value:"鄂L"},{name:"EM",value:"鄂M"},{name:"EN",value:"鄂N"},{name:"EP",value:"鄂P"},{name:"EQ",value:"鄂Q"},{name:"ER",value:"鄂R"},{name:"ES",value:"鄂S"}, +{name:"EAW",value:"鄂AW"},{name:"EO",value:"鄂O"},{name:"GA",value:"桂A"},{name:"GB",value:"桂B"},{name:"GC",value:"桂C"},{name:"GD",value:"桂D"},{name:"GE",value:"桂E"}, +{name:"GF",value:"桂F"},{name:"GG",value:"桂G"},{name:"GH",value:"桂H"},{name:"HJ",value:"桂J"},{name:"HK",value:"桂K"},{name:"GL",value:"桂L"},{name:"GM",value:"桂M"}, +{name:"GN",value:"桂N"},{name:"GP",value:"桂P"},{name:"GR",value:"桂R"},{name:"GA",value:"甘A"},{name:"GB",value:"甘B"},{name:"GC",value:"甘C"},{name:"GD",value:"甘D"}, +{name:"GE",value:"甘E"},{name:"GF",value:"甘F"},{name:"GG",value:"甘G"},{name:"GM",value:"甘H"},{name:"GJ",value:"甘J"},{name:"GK",value:"甘K"},{name:"GL",value:"甘L"}, +{name:"GM",value:"甘M"},{name:"GN",value:"甘N"},{name:"GP",value:"甘P"},{name:"JA",value:"晋A"},{name:"JB",value:"晋B"},{name:"JC",value:"晋C"},{name:"JD",value:"晋D"}, +{name:"JE",value:"晋E"},{name:"JF",value:"晋F"},{name:"JH",value:"晋H"},{name:"JJ",value:"晋J"},{name:"JK",value:"晋K"},{name:"JL",value:"晋L"},{name:"JM",value:"晋M"}, +{name:"MA",value:"蒙A"},{name:"MB",value:"蒙B"},{name:"MC",value:"蒙C"},{name:"MD",value:"蒙D"},{name:"ME",value:"蒙E"},{name:"MF",value:"蒙F"},{name:"MG",value:"蒙G"}, +{name:"MH",value:"蒙H"},{name:"MJ",value:"蒙J"},{name:"MK",value:"蒙K"},{name:"ML",value:"蒙L"},{name:"MM",value:"蒙M"},{name:"SA",value:"陕A"},{name:"SB",value:"陕B"}, +{name:"SC",value:"陕C"},{name:"SD",value:"陕D"},{name:"SE",value:"陕E"},{name:"SF",value:"陕F"},{name:"SG",value:"陕G"},{name:"SH",value:"陕H"},{name:"SJ",value:"陕J"}, +{name:"SK",value:"陕K"},{name:"SV",value:"陕V"},{name:"JA",value:"吉A"},{name:"JB",value:"吉B"},{name:"JC",value:"吉C"},{name:"JD",value:"吉D"},{name:"JE",value:"吉E"}, +{name:"JF",value:"吉F"},{name:"JG",value:"吉G"},{name:"JH",value:"吉H"},{name:"JJ",value:"吉J"},{name:"JK",value:"吉K"},{name:"MA",value:"闽A"},{name:"MB",value:"闽B"}, +{name:"MC",value:"闽C"},{name:"MD",value:"闽D"},{name:"ME",value:"闽E"},{name:"MF",value:"闽F"},{name:"MG",value:"闽G"},{name:"MH",value:"闽H"},{name:"MJ",value:"闽J"}, +{name:"MK",value:"闽K"},{name:"GA",value:"贵A"},{name:"GB",value:"贵B"},{name:"GC",value:"贵C"},{name:"GD",value:"贵D"},{name:"GE",value:"贵E"},{name:"GF",value:"贵F"}, +{name:"GG",value:"贵G"},{name:"GH",value:"贵H"},{name:"GJ",value:"贵J"},{name:"QA",value:"青A"},{name:"QB",value:"青B"},{name:"QC",value:"青C"},{name:"QD",value:"青D"}, +{name:"QE",value:"青E"},{name:"QF",value:"青F"},{name:"QG",value:"青G"},{name:"QH",value:"青H"},{name:"ZA",value:"藏A"},{name:"ZB",value:"藏B"},{name:"ZC",value:"藏C"}, +{name:"ZD",value:"藏D"},{name:"ZE",value:"藏E"},{name:"ZF",value:"藏F"},{name:"ZG",value:"藏G"},{name:"ZH",value:"藏H"},{name:"ZJ",value:"藏J"},{name:"CA",value:"川A"}, +{name:"CB",value:"川B"},{name:"CC",value:"川C"},{name:"CD",value:"川D"},{name:"CE",value:"川E"},{name:"CF",value:"川F"},{name:"CH",value:"川H"},{name:"CJ",value:"川J"}, +{name:"CK",value:"川K"},{name:"CL",value:"川L"},{name:"CM",value:"川M"},{name:"JO",value:"川O"},{name:"CQ",value:"川Q"},{name:"CR",value:"川R"},{name:"CS",value:"川S"}, +{name:"CT",value:"川T"},{name:"CU",value:"川U"},{name:"CV",value:"川V"},{name:"CW",value:"川W"},{name:"CX",value:"川X"},{name:"CY",value:"川Y"},{name:"CZ",value:"川Z"}, +{name:"NA",value:"宁A"},{name:"NB",value:"宁B"},{name:"NC",value:"宁C"},{name:"ND",value:"宁D"},{name:"NE",value:"宁E"},{name:"XA",value:"新A"},{name:"XB",value:"新B"}, +{name:"XC",value:"新C"},{name:"XD",value:"新D"},{name:"XE",value:"新E"},{name:"XF",value:"新F"},{name:"XG",value:"新G"},{name:"XH",value:"新H"},{name:"XJ",value:"新J"}, +{name:"XK",value:"新K"},{name:"XL",value:"新L"},{name:"XM",value:"新M"},{name:"XN",value:"新N"},{name:"XP",value:"新P"},{name:"XQ",value:"新Q"},{name:"XR",value:"新R"}, +{name:"QA",value:"琼A"},{name:"QB",value:"琼B"},{name:"QC",value:"琼C"},{name:"QD",value:"琼D"},{name:"QE",value:"琼E"}]; \ No newline at end of file diff --git a/js/index.js b/js/index.js new file mode 100644 index 0000000..125e660 --- /dev/null +++ b/js/index.js @@ -0,0 +1,61 @@ +window.onload = function() { + $("#car_name").on("focus", function() { + var car_name = $("#car_name").val(); + if(car_name == "输入车牌") { + $("#car_name").val(""); + } + }); + $(".next_step").on("click", function() { + var car_name = $("#car_name").val().toUpperCase(); + if(car_name == "输入车牌" || car_name == "") { + layer.open({ + content: '请输入车牌', + skin: 'msg', + time: 2 + }); + } else if(check_car_name(car_name) == false) { + layer.open({ + content: '请输入正确车牌', + skin: 'msg', + time: 2 + }); + } else { + $.ajax({ + type: "post", + url: location.href, + async: false, + data: { + "car_name": car_name + }, + dataType: "html", + success: function(data) { + if(data == 'success') { + layer.open({ + content: '绑定成功', + skin: 'msg', + time: 2 + }); + setTimeout(function(){ + window.location.href="index.php"; + },2000); + } else { + layer.open({ + content: '绑定失败', + skin: 'msg', + time: 2 + }); + } + } + }); + } + }); +} + +function check_car_name(car_name) { + var re = /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/; + if(car_name.search(re) == -1) { + return false; + } else { + return true; + } +} \ No newline at end of file diff --git a/js/jquery.autocomplete.js b/js/jquery.autocomplete.js new file mode 100644 index 0000000..9d12a29 --- /dev/null +++ b/js/jquery.autocomplete.js @@ -0,0 +1,808 @@ +/* + * jQuery Autocomplete plugin 1.1 + * + * Copyright (c) 2009 Jörn Zaefferer + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $ + */ + +;(function($) { + +$.fn.extend({ + autocomplete: function(urlOrData, options) { + var isUrl = typeof urlOrData == "string"; + options = $.extend({}, $.Autocompleter.defaults, { + url: isUrl ? urlOrData : null, + data: isUrl ? null : urlOrData, + delay: isUrl ? $.Autocompleter.defaults.delay : 10, + max: options && !options.scroll ? 10 : 150 + }, options); + + // if highlight is set to false, replace it with a do-nothing function + options.highlight = options.highlight || function(value) { return value; }; + + // if the formatMatch option is not specified, then use formatItem for backwards compatibility + options.formatMatch = options.formatMatch || options.formatItem; + + return this.each(function() { + new $.Autocompleter(this, options); + }); + }, + result: function(handler) { + return this.bind("result", handler); + }, + search: function(handler) { + return this.trigger("search", [handler]); + }, + flushCache: function() { + return this.trigger("flushCache"); + }, + setOptions: function(options){ + return this.trigger("setOptions", [options]); + }, + unautocomplete: function() { + return this.trigger("unautocomplete"); + } +}); + +$.Autocompleter = function(input, options) { + + var KEY = { + UP: 38, + DOWN: 40, + DEL: 46, + TAB: 9, + RETURN: 13, + ESC: 27, + COMMA: 188, + PAGEUP: 33, + PAGEDOWN: 34, + BACKSPACE: 8 + }; + + // Create $ object for input element + var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass); + + var timeout; + var previousValue = ""; + var cache = $.Autocompleter.Cache(options); + var hasFocus = 0; + var lastKeyPressCode; + var config = { + mouseDownOnSelect: false + }; + var select = $.Autocompleter.Select(options, input, selectCurrent, config); + + var blockSubmit; + + // prevent form submit in opera when selecting with return key + $.browser.opera && $(input.form).bind("submit.autocomplete", function() { + if (blockSubmit) { + blockSubmit = false; + return false; + } + }); + + // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all + $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) { + // a keypress means the input has focus + // avoids issue where input had focus before the autocomplete was applied + hasFocus = 1; + // track last key pressed + lastKeyPressCode = event.keyCode; + switch(event.keyCode) { + + case KEY.UP: + event.preventDefault(); + if ( select.visible() ) { + select.prev(); + } else { + onChange(0, true); + } + break; + + case KEY.DOWN: + event.preventDefault(); + if ( select.visible() ) { + select.next(); + } else { + onChange(0, true); + } + break; + + case KEY.PAGEUP: + event.preventDefault(); + if ( select.visible() ) { + select.pageUp(); + } else { + onChange(0, true); + } + break; + + case KEY.PAGEDOWN: + event.preventDefault(); + if ( select.visible() ) { + select.pageDown(); + } else { + onChange(0, true); + } + break; + + // matches also semicolon + case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA: + case KEY.TAB: + case KEY.RETURN: + if( selectCurrent() ) { + // stop default to prevent a form submit, Opera needs special handling + event.preventDefault(); + blockSubmit = true; + return false; + } + break; + + case KEY.ESC: + select.hide(); + break; + + default: + clearTimeout(timeout); + timeout = setTimeout(onChange, options.delay); + break; + } + }).focus(function(){ + // track whether the field has focus, we shouldn't process any + // results if the field no longer has focus + hasFocus++; + }).blur(function() { + hasFocus = 0; + if (!config.mouseDownOnSelect) { + hideResults(); + } + }).click(function() { + // show select when clicking in a focused field + if ( hasFocus++ > 1 && !select.visible() ) { + onChange(0, true); + } + }).bind("search", function() { + // TODO why not just specifying both arguments? + var fn = (arguments.length > 1) ? arguments[1] : null; + function findValueCallback(q, data) { + var result; + if( data && data.length ) { + for (var i=0; i < data.length; i++) { + if( data[i].result.toLowerCase() == q.toLowerCase() ) { + result = data[i]; + break; + } + } + } + if( typeof fn == "function" ) fn(result); + else $input.trigger("result", result && [result.data, result.value]); + } + $.each(trimWords($input.val()), function(i, value) { + request(value, findValueCallback, findValueCallback); + }); + }).bind("flushCache", function() { + cache.flush(); + }).bind("setOptions", function() { + $.extend(options, arguments[1]); + // if we've updated the data, repopulate + if ( "data" in arguments[1] ) + cache.populate(); + }).bind("unautocomplete", function() { + select.unbind(); + $input.unbind(); + $(input.form).unbind(".autocomplete"); + }); + + + function selectCurrent() { + var selected = select.selected(); + if( !selected ) + return false; + + var v = selected.result; + previousValue = v; + + if ( options.multiple ) { + var words = trimWords($input.val()); + if ( words.length > 1 ) { + var seperator = options.multipleSeparator.length; + var cursorAt = $(input).selection().start; + var wordAt, progress = 0; + $.each(words, function(i, word) { + progress += word.length; + if (cursorAt <= progress) { + wordAt = i; + return false; + } + progress += seperator; + }); + words[wordAt] = v; + // TODO this should set the cursor to the right position, but it gets overriden somewhere + //$.Autocompleter.Selection(input, progress + seperator, progress + seperator); + v = words.join( options.multipleSeparator ); + } + v += options.multipleSeparator; + } + + $input.val(v); + hideResultsNow(); + $input.trigger("result", [selected.data, selected.value]); + return true; + } + + function onChange(crap, skipPrevCheck) { + if( lastKeyPressCode == KEY.DEL ) { + select.hide(); + return; + } + + var currentValue = $input.val(); + + if ( !skipPrevCheck && currentValue == previousValue ) + return; + + previousValue = currentValue; + + currentValue = lastWord(currentValue); + if ( currentValue.length >= options.minChars) { + $input.addClass(options.loadingClass); + if (!options.matchCase) + currentValue = currentValue.toLowerCase(); + request(currentValue, receiveData, hideResultsNow); + } else { + stopLoading(); + select.hide(); + } + }; + + function trimWords(value) { + if (!value) + return [""]; + if (!options.multiple) + return [$.trim(value)]; + return $.map(value.split(options.multipleSeparator), function(word) { + return $.trim(value).length ? $.trim(word) : null; + }); + } + + function lastWord(value) { + if ( !options.multiple ) + return value; + var words = trimWords(value); + if (words.length == 1) + return words[0]; + var cursorAt = $(input).selection().start; + if (cursorAt == value.length) { + words = trimWords(value) + } else { + words = trimWords(value.replace(value.substring(cursorAt), "")); + } + return words[words.length - 1]; + } + + // fills in the input box w/the first match (assumed to be the best match) + // q: the term entered + // sValue: the first matching result + function autoFill(q, sValue){ + // autofill in the complete box w/the first match as long as the user hasn't entered in more data + // if the last user key pressed was backspace, don't autofill + if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) { + // fill in the value (keep the case the user has typed) + $input.val($input.val() + sValue.substring(lastWord(previousValue).length)); + // select the portion of the value not typed by the user (so the next character will erase) + $(input).selection(previousValue.length, previousValue.length + sValue.length); + } + }; + + function hideResults() { + clearTimeout(timeout); + timeout = setTimeout(hideResultsNow, 200); + }; + + function hideResultsNow() { + var wasVisible = select.visible(); + select.hide(); + clearTimeout(timeout); + stopLoading(); + if (options.mustMatch) { + // call search and run callback + $input.search( + function (result){ + // if no value found, clear the input box + if( !result ) { + if (options.multiple) { + var words = trimWords($input.val()).slice(0, -1); + $input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") ); + } + else { + $input.val( "" ); + $input.trigger("result", null); + } + } + } + ); + } + }; + + function receiveData(q, data) { + if ( data && data.length && hasFocus ) { + stopLoading(); + select.display(data, q); + autoFill(q, data[0].value); + select.show(); + } else { + hideResultsNow(); + } + }; + + function request(term, success, failure) { + if (!options.matchCase) + term = term.toLowerCase(); + var data = cache.load(term); + // recieve the cached data + if (data && data.length) { + success(term, data); + // if an AJAX url has been supplied, try loading the data now + } else if( (typeof options.url == "string") && (options.url.length > 0) ){ + + var extraParams = { + timestamp: +new Date() + }; + $.each(options.extraParams, function(key, param) { + extraParams[key] = typeof param == "function" ? param() : param; + }); + + $.ajax({ + // try to leverage ajaxQueue plugin to abort previous requests + mode: "abort", + // limit abortion to this input + port: "autocomplete" + input.name, + dataType: options.dataType, + url: options.url, + data: $.extend({ + q: lastWord(term), + limit: options.max + }, extraParams), + success: function(data) { + var parsed = options.parse && options.parse(data) || parse(data); + cache.add(term, parsed); + success(term, parsed); + } + }); + } else { + // if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match + select.emptyList(); + failure(term); + } + }; + + function parse(data) { + var parsed = []; + var rows = data.split("\n"); + for (var i=0; i < rows.length; i++) { + var row = $.trim(rows[i]); + if (row) { + row = row.split("|"); + parsed[parsed.length] = { + data: row, + value: row[0], + result: options.formatResult && options.formatResult(row, row[0]) || row[0] + }; + } + } + return parsed; + }; + + function stopLoading() { + $input.removeClass(options.loadingClass); + }; + +}; + +$.Autocompleter.defaults = { + inputClass: "ac_input", + resultsClass: "ac_results", + loadingClass: "ac_loading", + minChars: 1, + delay: 400, + matchCase: false, + matchSubset: true, + matchContains: false, + cacheLength: 10, + max: 100, + mustMatch: false, + extraParams: {}, + selectFirst: true, + formatItem: function(row) { return row[0]; }, + formatMatch: null, + autoFill: false, + width: 0, + multiple: false, + multipleSeparator: ", ", + highlight: function(value, term) { + return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"); + }, + scroll: true, + scrollHeight: 180 +}; + +$.Autocompleter.Cache = function(options) { + + var data = {}; + var length = 0; + + function matchSubset(s, sub) { + if (!options.matchCase) + s = s.toLowerCase(); + var i = s.indexOf(sub); + if (options.matchContains == "word"){ + i = s.toLowerCase().search("\\b" + sub.toLowerCase()); + } + if (i == -1) return false; + return i == 0 || options.matchContains; + }; + + function add(q, value) { + if (length > options.cacheLength){ + flush(); + } + if (!data[q]){ + length++; + } + data[q] = value; + } + + function populate(){ + if( !options.data ) return false; + // track the matches + var stMatchSets = {}, + nullData = 0; + + // no url was specified, we need to adjust the cache length to make sure it fits the local data store + if( !options.url ) options.cacheLength = 1; + + // track all options for minChars = 0 + stMatchSets[""] = []; + + // loop through the array and create a lookup structure + for ( var i = 0, ol = options.data.length; i < ol; i++ ) { + var rawValue = options.data[i]; + // if rawValue is a string, make an array otherwise just reference the array + rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue; + + var value = options.formatMatch(rawValue, i+1, options.data.length); + if ( value === false ) + continue; + + var firstChar = value.charAt(0).toLowerCase(); + // if no lookup array for this character exists, look it up now + if( !stMatchSets[firstChar] ) + stMatchSets[firstChar] = []; + + // if the match is a string + var row = { + value: value, + data: rawValue, + result: options.formatResult && options.formatResult(rawValue) || value + }; + + // push the current match into the set list + stMatchSets[firstChar].push(row); + + // keep track of minChars zero items + if ( nullData++ < options.max ) { + stMatchSets[""].push(row); + } + }; + + // add the data items to the cache + $.each(stMatchSets, function(i, value) { + // increase the cache size + options.cacheLength++; + // add to the cache + add(i, value); + }); + } + + // populate any existing data + setTimeout(populate, 25); + + function flush(){ + data = {}; + length = 0; + } + + return { + flush: flush, + add: add, + populate: populate, + load: function(q) { + if (!options.cacheLength || !length) + return null; + /* + * if dealing w/local data and matchContains than we must make sure + * to loop through all the data collections looking for matches + */ + if( !options.url && options.matchContains ){ + // track all matches + var csub = []; + // loop through all the data grids for matches + for( var k in data ){ + // don't search through the stMatchSets[""] (minChars: 0) cache + // this prevents duplicates + if( k.length > 0 ){ + var c = data[k]; + $.each(c, function(i, x) { + // if we've got a match, add it to the array + if (matchSubset(x.value, q)) { + csub.push(x); + } + }); + } + } + return csub; + } else + // if the exact item exists, use it + if (data[q]){ + return data[q]; + } else + if (options.matchSubset) { + for (var i = q.length - 1; i >= options.minChars; i--) { + var c = data[q.substr(0, i)]; + if (c) { + var csub = []; + $.each(c, function(i, x) { + if (matchSubset(x.value, q)) { + csub[csub.length] = x; + } + }); + return csub; + } + } + } + return null; + } + }; +}; + +$.Autocompleter.Select = function (options, input, select, config) { + var CLASSES = { + ACTIVE: "ac_over" + }; + + var listItems, + active = -1, + data, + term = "", + needsInit = true, + element, + list; + + // Create results + function init() { + if (!needsInit) + return; + element = $("
") + .hide() + .addClass(options.resultsClass) + .css("position", "absolute") + .appendTo(document.body); + + list = $("