jquery.gcjs.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  1. jQuery.extend({
  2. isEmail: function(str) {
  3. return /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/.test($.trim(str));
  4. },
  5. isIDCard: function(obj) {
  6. var aCity = {11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙 江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖 北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西 藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国 外"};
  7. var iSum = 0;
  8. //var info = "";
  9. var strIDno = obj;
  10. var idCardLength = strIDno.length;
  11. if (!/^\d{17}(\d|x)$/i.test(strIDno) && !/^\d{15}$/i.test(strIDno))
  12. return false; //非法身份证号
  13. if (aCity[parseInt(strIDno.substr(0, 2))] == null)
  14. return false;// 非法地区
  15. // 15位身份证转换为18位
  16. if (idCardLength == 15)
  17. {
  18. sBirthday = "19" + strIDno.substr(6, 2) + "-" + Number(strIDno.substr(8, 2)) + "-" + Number(strIDno.substr(10, 2));
  19. var d = new Date(sBirthday.replace(/-/g, "/"))
  20. var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
  21. if (sBirthday != dd)
  22. return false; //非法生日
  23. strIDno = strIDno.substring(0, 6) + "19" + strIDno.substring(6, 15);
  24. strIDno = strIDno + GetVerifyBit(strIDno);
  25. }
  26. // 判断是否大于2078年,小于1900年
  27. var year = strIDno.substring(6, 10);
  28. if (year < 1900 || year > 2078)
  29. return false;//非法生日
  30. //18位身份证处理
  31. //在后面的运算中x相当于数字10,所以转换成a
  32. strIDno = strIDno.replace(/x$/i, "a");
  33. sBirthday = strIDno.substr(6, 4) + "-" + Number(strIDno.substr(10, 2)) + "-" + Number(strIDno.substr(12, 2));
  34. var d = new Date(sBirthday.replace(/-/g, "/"))
  35. if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate()))
  36. return false; //非法生日
  37. // 身份证编码规范验证
  38. for (var i = 17; i >= 0; i --)
  39. iSum += (Math.pow(2, i) % 11) * parseInt(strIDno.charAt(17 - i), 11);
  40. if (iSum % 11 != 1)
  41. return false;// 非法身份证号
  42. // 判断是否屏蔽身份证
  43. var words = new Array();
  44. words = new Array("11111119111111111", "12121219121212121");
  45. for (var k = 0; k < words.length; k++) {
  46. if (strIDno.indexOf(words[k]) != -1) {
  47. return false;
  48. }
  49. }
  50. return true;
  51. },
  52. isUrl: function(str) {
  53. return /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/.test($.trim(str));
  54. },
  55. isInt: function(str) {
  56. return /^[-\+]?\d+$/.test($.trim(str));
  57. },
  58. isUserID: function(str) {
  59. return /^\s*[A-Za-z0-9_-]{6,20}\s*$/.test($.trim(str));
  60. },
  61. isMobile: function(str) {
  62. return $.trim(str) !== '' && /^1[3|4|5|7|8|9][0-9]\d{8}$/.test($.trim(str));
  63. },
  64. isChinese: function(str) {
  65. return $.trim(str) != '' & !/[^\u4e00-\u9fa5]/.test($.trim(str));
  66. },
  67. isEnglish:function(str){
  68. return $.trim(str) != '' & !/[^a-zA-Z]/.test($.trim(str));
  69. },
  70. isPassword: function(str) {
  71. return /^[^\u4e00-\u9fa5\s]{6,20}$/.test($.trim(str));
  72. },
  73. isFloat: function(str) {
  74. return /^(\+|-)?\d+($|\.\d+$)/.test($.trim(str));
  75. },
  76. isNumber: function(str) {
  77. return !$.isEmpty(str) && !isNaN(str);
  78. },
  79. isIP: function(str) {
  80. if (/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test($.trim(str))) {
  81. if (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256)
  82. return true;
  83. }
  84. return false;
  85. },
  86. isDate: function(str) {
  87. var r = $.trim(str).split("-");
  88. if (r == null)
  89. return false;
  90. var d = new Date(r[0], r[1] - 1, r[2]);
  91. return (d.getFullYear() == r[0] && (d.getMonth() + 1) == r[1] && d.getDate() == r[2]);
  92. },
  93. htmlEncode: function(str) {
  94. str = str.replace(/&/g, '&amp;');
  95. str = str.replace(/</g, '&lt;');
  96. str = str.replace(/>/g, '&gt;');
  97. str = str.replace(/(?:\t| |\v|\r)*\n/g, '<br />');
  98. str = str.replace(/ /g, '&nbsp; ');
  99. str = str.replace(/\t/g, '&nbsp; &nbsp; ');
  100. str = str.replace(/\x22/g, '&quot;');
  101. str = str.replace(/\x27/g, '&#39;');
  102. return $.trim(str);
  103. },
  104. htmlDecode: function(str) {
  105. str = str.replace(/&amp;/gi, '&');
  106. str = str.replace(/&nbsp;/gi, ' ');
  107. str = str.replace(/&quot;/gi, '"');
  108. str = str.replace(/&#39;/g, "'");
  109. str = str.replace(/&lt;/gi, '<');
  110. str = str.replace(/&gt;/gi, '>');
  111. str = str.replace(/<br[^>]*>(?:(\r\n)|\r|\n)?/gi, '\n');
  112. return $.trim(str);
  113. },
  114. preview: function(str) {
  115. var testwin = open("");
  116. testwin.document.open();
  117. testwin.document.write(str);
  118. testwin.document.close();
  119. },
  120. isEmpty: function(str) {
  121. return $.trim(str) == '' || str == undefined
  122. },
  123. arrayIndexOf: function(arr, substr, start) {
  124. var ta, rt, d = '\0';
  125. if (start != null) {
  126. ta = arr.slice(start);
  127. rt = start;
  128. } else {
  129. ta = arr;
  130. rt = 0;
  131. }
  132. var str = d + ta.join(d) + d, t = str.indexOf(d + substr + d);
  133. if (t == -1)
  134. return -1;
  135. rt += str.slice(0, t).replace(/[^\0]/g, '').length;
  136. return rt;
  137. },
  138. arrayLastIndexOf: function(arr, substr, start) {
  139. var ta, rt, d = '\0';
  140. if (start != null) {
  141. ta = arr.slice(start);
  142. rt = start;
  143. } else {
  144. ta = arr;
  145. rt = 0;
  146. }
  147. ta = ta.reverse();
  148. var str = d + ta.join(d) + d, t = str.indexOf(d + substr + d);
  149. if (t == -1)
  150. return -1;
  151. rt += str.slice(t).replace(/[^\0]/g, '').length - 2;
  152. return rt;
  153. },
  154. arrayReplace: function(arr, reg, rpby) {
  155. var ta = arr.slice(0), d = '\0';
  156. var str = ta.join(d);
  157. str = str.replace(reg, rpby);
  158. return str.split(d);
  159. },
  160. arraySearch: function(arr, reg) {
  161. var ta = arr.slice(0), d = '\0', str = d + ta.join(d) + d, regstr = reg.toString();
  162. reg = new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g, '\\0$1\\0'), regstr.slice(regstr.lastIndexOf('/') + 1));
  163. t = str.search(reg);
  164. if (t == -1)
  165. return -1;
  166. return str.slice(0, t).replace(/[^\0]/g, '').length;
  167. },
  168. nullundefined: function(str) {
  169. },
  170. setClipboard: function(maintext) {
  171. if (window.clipboardData) {
  172. window.clipboardData.setData("Text", maintext);
  173. alert("复制成功!");
  174. }
  175. else if (window.netscape) {
  176. try {
  177. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  178. } catch (e) {
  179. alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将 'signed.applets.codebase_principal_support'设置为'true'");
  180. return;
  181. }
  182. var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
  183. if (!clip)
  184. return;
  185. var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
  186. if (!trans)
  187. return;
  188. trans.addDataFlavor('text/unicode');
  189. var str = new Object();
  190. var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
  191. var copytext = txt;
  192. str.data = copytext;
  193. trans.setTransferData("text/unicode", str, copytext.length * 2);
  194. var clipid = Components.interfaces.nsIClipboard;
  195. if (!clip)
  196. return false;
  197. clip.setData(trans, null, clipid.kGlobalClipboard);
  198. alert("复制成功!")
  199. }
  200. }
  201. });
  202. (function($) {
  203. $.fn.isInt = function() {
  204. return $.isInt($(this).val());
  205. }
  206. })(jQuery);
  207. (function($) {
  208. $.fn.isIDCard = function() {
  209. return $.isIDCard($(this).val());
  210. }
  211. })(jQuery);
  212. (function($) {
  213. $.fn.isEnglish = function() {
  214. return $.isEnglish($(this).val());
  215. }
  216. })(jQuery);
  217. (function($) {
  218. $.fn.isEmail = function() {
  219. return $.isEmail($(this).val());
  220. }
  221. })(jQuery);
  222. (function($) {
  223. $.fn.isDate = function() {
  224. return $.isDate($(this).val());
  225. }
  226. })(jQuery);
  227. (function($) {
  228. $.fn.isIP = function() {
  229. return $.isIP($(this).val());
  230. }
  231. })(jQuery);
  232. (function($) {
  233. $.fn.isChinese = function() {
  234. return $.isChinese($(this).val());
  235. }
  236. })(jQuery);
  237. (function($) {
  238. $.fn.isEmpty = function() {
  239. return $.isEmpty($(this).val());
  240. }
  241. })(jQuery);
  242. (function($) {
  243. $.fn.isUrl = function() {
  244. return $.isUrl($(this).val());
  245. }
  246. })(jQuery);
  247. (function($) {
  248. $.fn.isFloat = function() {
  249. return $.isFloat($(this).val());
  250. }
  251. })(jQuery);
  252. (function($) {
  253. $.fn.isNumber = function() {
  254. return $.isNumber($(this).val());
  255. }
  256. })(jQuery);
  257. (function($) {
  258. $.fn.isUserID = function() {
  259. return $.isUserID($(this).val());
  260. }
  261. })(jQuery);
  262. (function($) {
  263. $.fn.isPassword = function() {
  264. return $.isPassword($(this).val());
  265. }
  266. })(jQuery);
  267. (function($) {
  268. $.fn.isMobile = function() {
  269. return $.isMobile($(this).val());
  270. }
  271. })(jQuery);
  272. (function($) {
  273. $.fn.len = function() {
  274. return $(this).val().length;
  275. }
  276. })(jQuery);
  277. (function($) {
  278. $.fn.checked = function() {
  279. return $(this).get(0).checked();
  280. }
  281. })(jQuery);
  282. (function($){
  283. $.fn.resizeImage = function(iwidth,iheight){
  284. var w = $(this).width() ;
  285. var h = $(this).height() ;
  286. var _img = new Image();
  287. _img.src = $(this).attr("src");
  288. if(_img.width > _img.height)
  289. {
  290. h = (_img.height / _img.width) *w;
  291. w = (_img.width > iwidth) ? iwidth : _img.width;
  292. }
  293. else if(_img.width < _img.height)
  294. {
  295. w= (_img.width / _img.height) * h ;
  296. h= (_img.height > iheight) ? iheight : _img.height;
  297. }
  298. else
  299. {
  300. h = (_img.height > iheight) ? iheight : _img.height;
  301. w= (_img.width > iwidth) ? iwidth : _img.width;
  302. }
  303. $(this).css({width: w+ "px",height:h+"px"});
  304. }
  305. })(jQuery);
  306. (function($) {
  307. $.fn.breakWords = function(width) {
  308. var _this = $(this);
  309. var content = _this.html();
  310. if (content == undefined) {
  311. return;
  312. }
  313. if (content.length <= width) {
  314. _this.html(content);
  315. }
  316. else {
  317. var str = '';
  318. for (var i = 0; i < content.length; i++) {
  319. if (i % width != 0) {
  320. str += content.substr(i, 1);
  321. }
  322. else {
  323. if (i != 0) {
  324. str += "<br/>" + content.substr(i, 1);
  325. }
  326. }
  327. }
  328. _this.html(str);
  329. }
  330. }
  331. })(jQuery);
  332. (function($) {
  333. $.fn.limitWidth = function() {
  334. var _this = $(this);
  335. var elments = _this.getElementsByTagName("*");
  336. for (var i = 0; i < elments.length; i++) {
  337. if (parseInt(elments[i].getAttribute("width")) > width) {
  338. elments[i].setAttribute("width", width - 1);
  339. }
  340. if (elments[i].style.width) {
  341. if (parseInt(elments[i].style.width) > width) {
  342. elments[i].style.width = width - 1;
  343. }
  344. }
  345. }
  346. return _this;
  347. }
  348. })(jQuery);
  349. (function($) {
  350. $.fn.limitLength = function(num, inputID,isInput) {
  351. var textarea = $(this);
  352. var input = null;
  353. if (inputID) {
  354. input = $("#" + inputID);
  355. }
  356. if (input) {
  357. isInput?input.val(num - textarea.len()):input.html(num - textarea.len());
  358. }
  359. function limit(textarea, num) {
  360. if (textarea.len() >= num) {
  361. textarea.val(textarea.val().substring(0, num));
  362. }
  363. else {
  364. if (input) {
  365. isInput?input.val(num - textarea.len()):input.html(num - textarea.len());
  366. }
  367. }
  368. }
  369. textarea.keypress(function(e) {
  370. limit($(this), num);
  371. }).keyup(function(e) {
  372. limit($(this), num);
  373. }).mouseup(function(e) {
  374. limit($(this), num);
  375. });
  376. return textarea;
  377. }
  378. })(jQuery);
  379. (function($) {
  380. $.fn.nulldefined = function() {
  381. }
  382. })(jQuery);
  383. var GC = {
  384. addFavorite: function(url, text) //收藏夹
  385. {
  386. if (document.all) {
  387. window.external.addFavorite(url, text);
  388. }
  389. else if (window.sidebar) {
  390. window.sidebar.addPanel(text, url, "");
  391. }
  392. },
  393. holder: function(objid){
  394. var _this = $("#" + objid);
  395. var placeholder = _this.attr("holder");
  396. if($.trim(_this.val())==""){
  397. _this.addClass("placeholder");
  398. _this.val(placeholder);
  399. }
  400. _this.focus(function(){
  401. if($.trim(_this.val())==placeholder){
  402. _this.removeClass("placeholder");
  403. _this.val("");
  404. }
  405. }).blur(function(){
  406. if($.trim(_this.val())==""){
  407. _this.addClass("placeholder");
  408. _this.val(placeholder);
  409. }
  410. });
  411. },
  412. setHomePage: function(obj, vrl) //首页
  413. {
  414. if (confirm('确认要将' + vrl + '设置为首页?')) {
  415. try {
  416. obj.style.behavior = 'url(#default#homepage)';
  417. obj.setHomePage(vrl);
  418. }
  419. catch (e) {
  420. if (window.netscape) {
  421. try {
  422. netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  423. }
  424. catch (e) {
  425. alert("此操作被浏览器拒绝!\n请在浏览器地址栏填写“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'");
  426. }
  427. var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
  428. prefs.setCharPref('browser.startup.homepage', vrl);
  429. }
  430. }
  431. }
  432. },
  433. undefined: function(variable) {
  434. return typeof variable == 'undefined' ? true : false;
  435. },
  436. form: function(formid) {
  437. if (formid == null || formid == undefined)
  438. {
  439. return document.forms[0];
  440. }
  441. else {
  442. return document.forms[formid];
  443. }
  444. },
  445. openWindow : function(url){
  446. var a = document.createElement("a");
  447. a.setAttribute("href", url);
  448. a.setAttribute("target", "_blank");
  449. a.setAttribute("id", "openwin");
  450. document.body.appendChild(a);
  451. a.click();
  452. },
  453. getElementsByName: function(name) {
  454. var ret = [];
  455. var elements = document.getElementsByTagName("input");
  456. for (var i = 0; i < elements.length; i++) {
  457. if (elements[i].name == name) {
  458. ret.push(elements[i]);
  459. }
  460. }
  461. return ret;
  462. },
  463. checkAll: function(ischecked, formid) {
  464. if (formid) {
  465. $("#" + formid + " input[type='checkbox']").attr("checked", ischecked);
  466. } else {
  467. $("input[type='checkbox']").attr("checked", ischecked);
  468. }
  469. },
  470. selectedCount: function(formid) {
  471. var chks = null;
  472. var n = 0;
  473. if (formid) {
  474. chks = $("#" + formid + " input[type='checkbox']");
  475. } else {
  476. chks = $("input[type='checkbox']");
  477. }
  478. chks.each(function() {
  479. if ($(this).get(0).checked) {
  480. n++;
  481. }
  482. });
  483. return n;
  484. },
  485. selecteds: function(formid) {
  486. var ids = "";
  487. var chks = null;
  488. if (formid) {
  489. chks = $("#" + formid + " input[type='checkbox']");
  490. } else {
  491. chks = $("input[type='checkbox']");
  492. }
  493. chks.each(function() {
  494. if ($(this).get(0).checked) {
  495. if (ids != "") {
  496. ids += ",";
  497. }
  498. ids += $(this).val();
  499. }
  500. });
  501. return ids;
  502. },
  503. allids: function(formid) {
  504. var ids = "";
  505. var chks = null;
  506. if (formid) {
  507. chks = $("#" + formid + " input[type='checkbox']");
  508. } else {
  509. chks = $("input[type='checkbox']");
  510. }
  511. chks.each(function() {
  512. if (ids != "") {
  513. ids += ",";
  514. }
  515. ids += $(this).val();
  516. });
  517. return ids;
  518. },
  519. uncheckAll: function(formid) {
  520. if (formid) {
  521. $("#" + formid + " input[type='checkbox']").attr("checked", false);
  522. } else {
  523. $("input[type='checkbox']").attr("checked", false);
  524. }
  525. }
  526. }
  527. ;
  528. (function($) {
  529. $.fn.extend({
  530. "placeholder": function(options) {
  531. options = $.extend({
  532. placeholderColor: '#aaa',
  533. isUseSpan: true, //是否使用插入span标签模拟placeholder的方式,默认false,默认使用value模拟
  534. onInput: true //使用标签模拟(isUseSpan为true)时,是否绑定onInput事件取代focus/blur事件
  535. }, options);
  536. $(this).each(function() {
  537. var _this = this;
  538. var supportPlaceholder = 'placeholder' in document.createElement('input');
  539. if (!supportPlaceholder) {
  540. var defaultValue = $(_this).attr('placeholder');
  541. if (!defaultValue) {
  542. return;
  543. }
  544. var defaultColor = $(_this).css('color');
  545. if (!options.isUseSpan) {
  546. $(_this).focus(function() {
  547. var pattern = new RegExp("^" + defaultValue + "$|^$");
  548. pattern.test($(_this).val()) && $(_this).val('').css('color', defaultColor);
  549. }).blur(function() {
  550. if ($(_this).val() == defaultValue) {
  551. $(_this).css('color', defaultColor);
  552. } else if ($(_this).val().length == 0) {
  553. $(_this).val(defaultValue).css('color', options.placeholderColor)
  554. }
  555. }).trigger('blur');
  556. } else {
  557. var $imitate = $('<span class="wrap-placeholder" style="position:absolute; display:inline-block; overflow:hidden; color:' + options.placeholderColor + '; width:' + $(_this).outerWidth() + 'px; height:' + $(_this).outerHeight() + 'px;">' + defaultValue + '</span>');
  558. $imitate.css({
  559. 'margin-left': $(_this).css('margin-left'),
  560. 'margin-top': $(_this).css('margin-top'),
  561. 'font-size': $(_this).css('font-size'),
  562. 'font-family': $(_this).css('font-family'),
  563. 'font-weight': $(_this).css('font-weight'),
  564. 'padding-left': parseInt($(_this).css('padding-left')) + 2 + 'px',
  565. 'line-height': _this.nodeName.toLowerCase() == 'textarea' ? $(_this).css('line-weight') : $(_this).outerHeight() + 'px',
  566. 'padding-top': _this.nodeName.toLowerCase() == 'textarea' ? parseInt($(_this).css('padding-top')) + 2 : 0,
  567. "left":$(_this).position().left + "px",
  568. "top":$(_this).position().top + "px"
  569. });
  570. $(_this).before($imitate.click(function() {
  571. $(_this).trigger('focus');
  572. }));
  573. $(_this).val().length != 0 && $imitate.hide();
  574. if (!options.onInput) {
  575. //绑定oninput/onpropertychange事件
  576. var inputChangeEvent = typeof(_this.oninput) == 'object' ? 'input' : 'propertychange';
  577. $(_this).bind(inputChangeEvent, function() {
  578. $imitate[0].style.display = $(_this).val().length != 0 ? 'none' : 'inline-block';
  579. });
  580. } else {
  581. $(_this).focus(function() {
  582. $imitate.hide();
  583. }).blur(function() {
  584. /^$/.test($(_this).val()) && $imitate.show();
  585. });
  586. }
  587. }
  588. }
  589. });
  590. return this;
  591. }
  592. });
  593. })(jQuery);
  594. (function($) {
  595. $.fn.extend({
  596. "initSelect": function(options) {
  597. options = $.extend({
  598. debug: false,
  599. maxlength:10
  600. }, options);
  601. $(this).each(function() {
  602. var _input =$(this);
  603. var _div = $("#" + $(this).attr("id") + "_div");
  604. var _ul = $("#" + $(this).attr("id") + "_ul");
  605. _div.mouseenter(function(){
  606. _ul.show();
  607. }).mouseleave(function(){
  608. _ul.hide();
  609. });
  610. var txt = "";
  611. var val = _input.val();
  612. $("li",_ul).each(function(){
  613. var item = $(this);
  614. if(item.attr("val")==val){
  615. $("span",$(".selected",_div)).html( item.attr("text").substr(0,options.maxlength));
  616. }
  617. if( item.attr("haschild")=="true"){
  618. var _cul = $("#" + _input.attr("id") + "_" + item.attr("val")+"_ul");
  619. item.mouseenter(function(){
  620. _cul.show();
  621. }).mouseleave(function(){
  622. _cul.hide();
  623. });
  624. }
  625. }).click(function(ev){
  626. var txt1 = $(this).attr("text");
  627. var val1 = $(this).attr("val");
  628. $("ul",_div).hide();
  629. _input.val( val1 );
  630. $("span",$(".selected",_div)).html(txt1.substr(0,options.maxlength));
  631. ev.stopPropagation();
  632. });;
  633. });
  634. return this;
  635. }
  636. });
  637. })(jQuery);