/* * form ¿ä¼Ò¿¡ µðÀÚÀÎÀ» ÀÔÈ÷±â À§ÇÑ ´ëü ½ºÅ©¸³Æ® * Alternate script for form elements * with jQuery * Info - * Demo - * License - http://creativecommons.org/licenses/by-sa/2.0/kr/ */ (function($) { // ±âº» ¿É¼Ç ¼³Á¤ var defaultoptions = { // PLACEHOLDER 'placeholder': { // ÇØ´ç input¿¡ ¾Æ·¡ Ŭ·¡½º Ãß°¡ ¶Ç´Â Á¦°Å. classname: 'placeholder', // placeholder¸¦ Áö¿øÇÏ´Â ºê¶ó¿ìÀú¿¡µµ »ç¿ëÇÒ °ÍÀÎÁö ¿©ºÎ. useall: false }, // RADIO // $().fakecheck() ½ÇÇà½Ã º°µµ·Î ÇÊ¿äÇÑ ¿É¼Ç °´Ã¼¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í, ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» °æ¿ì ±âº» ¿É¼ÇÀ» µû¸§. 'radio': { // »ç¿ëÇÒ Å±׸í tagname: 'span', // CSS Ŭ·¡½º¸í. base Ŭ·¡½º¸í¿¡ ³ª¸ÓÁö Ŭ·¡½º¸íÀÌ Ãß°¡ ¶Ç´Â Á¦°Å. // ÇØ´ç input[type="radio"] ű׿¡ º°µµ Ŭ·¡½º¸íÀÌ ÁöÁ¤µÈ °æ¿ì ÇØ´ç Ŭ·¡½º¸íÀ» Ãß°¡. classname: { base: 'radio', focus: 'focus', checked: 'checked', disabled: 'disabled' } }, // CHECKBOX // $().fakecheck() ½ÇÇà½Ã º°µµ·Î ÇÊ¿äÇÑ ¿É¼Ç °´Ã¼¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í, ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» °æ¿ì ±âº» ¿É¼ÇÀ» µû¸§. 'checkbox': { // »ç¿ëÇÒ Å±׸í tagname: 'span', // CSS Ŭ·¡½º¸í. base Ŭ·¡½º¸í¿¡ ³ª¸ÓÁö Ŭ·¡½º¸íÀÌ Ãß°¡ ¶Ç´Â Á¦°Å. // ÇØ´ç input[type="checkbox"] ű׿¡ º°µµ Ŭ·¡½º¸íÀÌ ÁöÁ¤µÈ °æ¿ì ÇØ´ç Ŭ·¡½º¸íÀ» Ãß°¡. classname: { base: 'checkbox', focus: 'focus', checked: 'checked', disabled: 'disabled' } }, // SELECT // $().fakeselect() ½ÇÇà½Ã º°µµ·Î ÇÊ¿äÇÑ ¿É¼Ç °´Ã¼¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°í, ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» °æ¿ì ±âº» ¿É¼ÇÀ» µû¸§. 'select': { // ŸÀÌƲ title: { // »ç¿ëÇÒ Å±׸í tagname: 'span', // ³»ºÎ¿¡ ³ÖÀ» HTML. // ÁöÁ¤µÇ¸é Á¦ÀÏ ¾ÈÂÊ ÀÚ½Ä(childNodes[0])¿¡ ÅؽºÆ® ÁöÁ¤. innerhtml: '', // CSS Ŭ·¡½º¸í. base Ŭ·¡½º¸í¿¡ ³ª¸ÓÁö Ŭ·¡½º¸íÀÌ Ãß°¡ ¶Ç´Â Á¦°Å. // ÇØ´ç select ű׿¡ º°µµ Ŭ·¡½º¸íÀÌ ÁöÁ¤µÈ °æ¿ì ÇØ´ç Ŭ·¡½º¸íÀ» Ãß°¡. classname: { base: 'select-title', focus: 'focus', active: 'active', // ¿É¼Ç ·¹À̾ º¸ÀÏ ¶§ disabled: 'disabled' }, // ´ë»ó select ¿ä¼ÒÀÇ ³ÐÀ̸¦ È®ÀÎÇÒ ¼ö ¾øÀ» ¶§ ÁöÁ¤ÇÒ ³ÐÀÌ defaultwidth: 100 }, // ¿É¼Ç ·¹À̾î option: { // »ç¿ëÇÒ Å±׸í tagname: 'div', // CSS Ŭ·¡½º¸í. base Ŭ·¡½º¸í¿¡ ³ª¸ÓÁö Ŭ·¡½º¸íÀÌ Ãß°¡ ¶Ç´Â Á¦°Å. // ÇØ´ç select ű׿¡ º°µµ Ŭ·¡½º¸íÀÌ ÁöÁ¤µÈ °æ¿ì ÇØ´ç Ŭ·¡½º¸íÀ» Ãß°¡. classname: { base: 'select-option', show: 'show', upper: 'upper', // ·¹À̾ ŸÀÌƲ »ó´Ü¿¡ À§Ä¡ÇÏ´Â °æ¿ì Ãß°¡µÉ Ŭ·¡½º¸í selected: 'selected', // ¼±ÅÃµÈ ¿É¼ÇÀÇ span ű׿¡ ÁöÁ¤µÇ´Â Ŭ·¡½º¸í disabled: 'disabled' // disabled ¼Ó¼ºÀÌ ÁöÁ¤µÈ ¿É¼Ç±×·ì¿¡ ÁöÁ¤µÇ´Â Ŭ·¡½º¸í }, // ³»ºÎ¿¡ ³ÖÀ» HTML. // ÁöÁ¤µÇ¸é Á¦ÀÏ ¾ÈÂÊ ÀÚ½Ä(childNodes[0])¿¡ ¾Æ·¡ Çü½ÄÀ¸·Î ¿É¼Ç ¸ñ·Ï ÁöÁ¤. // // * tagnameÀÌ 'ul'ÀÎ °æ¿ì ÃÖ»óÀ§ ul ű״ ¸¸µéÁö ¾ÊÀ½. innerhtml: '', // ·¹À̾ ŸÀÌƲ ÇÏ´Ü¿¡ À§Ä¡ÇÏ´Â °æ¿ì Æ÷Áö¼Ç position: -1, // ·¹À̾ ŸÀÌƲ »ó´Ü¿¡ À§Ä¡ÇÏ´Â °æ¿ì Æ÷Áö¼Ç upperposition: 1, // ·¹ÀÌ¾î ³ÐÀ̸¦ ±ÛÀÚ ±æÀÌ¿¡ ¸Â°Ô ÀÚµ¿À¸·Î ÁöÁ¤ÇÒ °ÍÀÎÁö ¿©ºÎ. // true ÀÎ °æ¿ì select ÅÂ±× ³ÐÀÌ¿Í, ·¹ÀÌ¾î ³ÐÀÌ Áß Å« °ªÀ¸·Î ÁöÁ¤. // false ÀÎ °æ¿ì select ÅÂ±× ³ÐÀÌ ¸¸Å­¸¸ ÁöÁ¤. autowidth: true, // CSS z-index zindex: 10, // ÃÖ´ë Ç¥½Ã °³¼ö. ÀÌ»óÀÏ °æ¿ì ½ºÅ©·Ñ¹Ù »ý¼º. maxlength: 5 }, // show|hide È¿°ú ÁöÁ¤. // 'fade', 'slide', 'fade&slide' ¶Ç´Â Á÷Á¢ ÇÔ¼ö ÁöÁ¤( ex) show: function() { ... } ). // Á÷Á¢ ÁöÁ¤ÇÔ¼ö ³» this´Â visibility ¼Ó¼ºÀÌ 'hidden' ó¸® µÈ ¿É¼Ç ·¹À̾î jQuery °´Ã¼. effect: { show: 'fade&slide', hide: 'fade&slide' }, // ¸ð¹ÙÀÏ È¯°æ¿¡¼­ »ç¿ë ¿©ºÎ useinmobile: true } } 'use strict'; (function(){function U(){this.parentNode&&this.parentNode.removeChild(this)}function e(e){return parseInt((e.fakeform?e[0]:e).getAttribute("data-fakeform-index"))}function K(e,c){var f,p,g=defaultoptions[e];if(!c)return g;for(f in g)if("string"==typeof g[f])void 0===c[f]&&(c[f]=c[f]||g[f]);else for(p in c[f]=c[f]||{},g[f])void 0===c[f][p]&&(c[f][p]=g[f][p]);return c}if($&&!$.fn.fakeform){var L=void 0!==document.ontouchstart,W=/(?:msie ([0-9]+)|rv:([0-9\.]+)\) like gecko)/i.test(navigator.userAgent), M=$(window),z=$(document.documentElement),q=null,G=/^[0-9]+$/,P=null;$.fn.fakeform=function(e,c){this.filter("select").fakeselect(e,c);this.filter('input[type="radio"], input[type="checkbox"]').fakecheck(e,c);this.filter("textarea, input").not('[type="radio"], [type="checkbox"]').fakeplaceholder(e,c);return this};(function(){function e(f){var c=$(this),g=c.data("placeholder"),y=c.data("classname");f=f?f.type:"blur";var q=this.value;"focus"!=f||q!=g||this.readOnly?"blur"==f&&(q&&q!=g?c.removeClass(y): (c.addClass(y),this.value=g)):(c.removeClass(y),this.value="")}var c="placeholder"in document.createElement("input");$.fn.fakeplaceholder=function(f){return this.each(function(){if($(this).data("placeholder"))e.call(this);else{var p,g,q;g=this.getAttribute("placeholder");q=K("placeholder",f);!g||!q.useall&&c||(p=$(this),p.data({placeholder:g,classname:q.classname}).bind("focus blur",e),e.call(p[0]))}})}})();(function(){function q(b,e){for(var C,D,v=0,B=b.length;v').mouseenter(f).mouseleave(p).click(z).insertBefore(r[w]),r[w].insertBefore(k[w]),$('label[for="'+r[w].attr("id")+'"]').mouseenter(g).mouseleave(y),C&&k[w].addClass(C),c.call(r[w][0]))} function c(){var b,c,f,g=e(this);if(G.test(g)&&(b=e(this),k[b]))k[b][this.disabled?"addClass":"removeClass"](t[b].classname.disabled);if("checkbox"==this.type)k[g]&&k[g][this.checked?"addClass":"removeClass"](t[g].classname.checked);else if("radio"==this.type&&this.form&&this.name)for(b=this.form[this.name],c=0,f=b.length;c').appendTo(document.body),P=100==q[0].offsetWidth, q.remove(),q=$(document.body));for(;e').html(b.title.innerhtml).bind("mouseover mousemove mouseout mousedown mouseup mouseenter mouseleave", r).click(k).insertBefore(m[h]),"none"==m[h].css("display")&&l[h].hide(),b.title.widthminus=B(l[h]),N[h]=Q(l[h]),m[h].insertBefore(l[h]),l[h].before(" "),A[h]=$("<"+b.option.tagname+' class="'+b.option.classname.base+'" data-option-width="'+(m[h].attr("data-option-width")||(b.option.autowidth?"auto":0))+'" data-option-length="'+(m[h].attr("data-option-length")||b.option.maxlength)+'" />').css({position:"absolute",zIndex:b.option.zindex}).html(b.option.innerhtml),x[h]=Q(A[h]),u&&(l[h].addClass(u),A[h].addClass(u)), m[h].removeAttr("data-option-width").removeAttr("data-option-length"),v(h,!0),R(m[h][0])}function c(a){var d=e(this);G.test(d)&&(R(this),v(d,!0===a))}function f(a){a=a.keyCode;var d,b,c;if(38==a||40==a)return d=e(this),b=m[d][0].options,c=b.selectedIndex,38==a&&0c&&p(d,c+1),!1}function p(a,d){m[a][0].options[d].selected="selected";m[a].change()}function g(a){a=e(this);l[a]&&l[a].addClass(n[a].title.classname.focus);z.bind("keydown",y)}function y(a){if(32==a.keyCode)return!1} function X(a){a=e(this);l[a]&&l[a].removeClass(n[a].title.classname.focus);z.unbind("keydown",y)}function r(a){var d=e(this);m[d][a.type]()}function k(a){a=e(this);if(m[a][0].disabled)return!1;if(I[a])return H(a),!L&&m[a].focus(),!1;if(!A[a][0].offsetWidth){var d=A[a],u=m[a][0].options.selectedIndex,c=z[0].clientWidth,f=z[0].clientHeight,g=M.scrollLeft(),h=M.scrollTop(),k=l[a][0].getBoundingClientRect(),p=l[a][0].offsetWidth,v=l[a][0].offsetHeight,r=d.attr("data-option-width"),t,y=k.left+g-z[0].clientLeft, k=k.top+h-z[0].clientTop;t=parseInt(d.attr("data-option-length"));Y(a);d.css("visibility","hidden").appendTo(q);r=Math.max(p,"auto"==r?d[0].offsetWidth:parseInt(r));void 0===n[a].option.widthminus&&(n[a].option.widthminus=B(d));t>=J[a].length?d.css({height:"",overflow:"hidden"}):d.css("overflow","").css("height",w(a,u,t));t=d[0].offsetHeight;k+v+t>f+h?(k=k-t+n[a].option.upperposition,d.addClass(n[a].option.classname.upper)):(k=k+v+n[a].option.position,d.removeClass(n[a].option.classname.upper));r> p&&y+r>c+g&&(y-=r-p);d.css({left:Math.max(0,y),top:k,width:r-n[a].option.widthminus}).scrollTop(b(a,u))}m[a].click();var d=A[a].stop(!0),u=n[a].effect.show,c=d[0].clientHeight,x;S.test(u)?(d.css("visibility","visible"),"fade"==u?(x={opacity:1},d.css("opacity",0)):"slide"==u?(x={height:c},d.css({height:0,opacity:1})):"fade&slide"==u&&(x={height:c,opacity:1},d.css({height:0,opacity:0})),!d.hasClass(n[a].option.classname.upper)||"slide"!=u&&"fade&slide"!=u||(x.top=parseInt(d.css("top")),d.css("top", x.top+c)),d.animate(x,T.show)):"function"==typeof u?u.call(d):d.css("visibility","visible");F=a;I[a]=!0;l[a].addClass(n[a].title.classname.active);q.bind("mousewheel",E);return!1}function H(a){var d=A[a].stop(!0),b=n[a].effect.hide||n[a].effect.show,c;S.test(b)?("fade"==b?c={opacity:0}:"slide"==b?c={height:1}:"fade&slide"==b&&(c={height:0,opacity:0}),!d.hasClass(n[a].option.classname.upper)||"slide"!=b&&"fade&slide"!=b||(c.top=d[0].offsetTop+d[0].offsetHeight),d.animate(c,T.hide)):"function"==typeof b? b.call(d):d.detach();F=-1;I[a]=!1;l[a].removeClass(n[a].title.classname.active);q.unbind("mousewheel",E)}function E(a){for(var d=a.target,b=defaultoptions.select.option.classname.base;!ba.test(d.nodeName);){if(-1!=d.className.indexOf(b)){d.scrollTop+=a.originalEvent.wheelDelta/2*-1;a.preventDefault();break}d=d.parentNode}}function t(){-1d&&(d=0);f"]);e.push(C(m[a]));"ul"!=c.tagname.toLowerCase()&&e.push(""); x[a].html(e.join(""));x[a].find("span").each(function(c){c==b&&$(this).addClass(n[a].option.classname.selected);this.onclick=function(a,b){return function(d){var c;b:{for(c=m[a][0].options[b];"select"!=c.nodeName.toLowerCase();){if(c.disabled){c=!0;break b}c=c.parentNode}c=!1}c?D(d):(p(a,b),!L&&m[a].focus());return!1}}(a,c)});x[a].find("strong").click(D);J[a]=x[a].find("strong, span")}function C(a){a=a.children("option, optgroup");for(var b=[],c=0,e=a.length;c