You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
5.7 KiB

  1. /***********************************************************************************
  2. * AJAX Error BlockUI 처리
  3. ***********************************************************************************/
  4. $(function() {
  5. $(document).ajaxError(function(event, request, settings){
  6. var message = '알수없는 오류가 발생하였습니다.';
  7. if( typeof request.responseJSON != 'undefined' && typeof request.responseJSON.message != 'undefined' ) {
  8. message = request.responseJSON.message;
  9. }
  10. else {
  11. if( request.status == 500 ) message = '서버 코드 오류가 발생하였습니다.\n관리자에게 문의하세요';
  12. else if ( request.status == 401 ) message = '해당 명령을 실행할 권한이 없습니다.';
  13. }
  14. toastr.error(message, '오류 발생');
  15. }).ajaxStart(function(){
  16. $.blockUI({
  17. css: {width:'25px',top:'49%',left:'49%',border:'0px none',backgroundColor:'transparent',cursor:'wait'},
  18. message : '<img src="/assets/images/common/ajax-loader.gif" alt="로딩중">',
  19. baseZ : 10000,
  20. overlayCSS : {opacity : 0}
  21. });
  22. }).ajaxComplete(function(){
  23. $.unblockUI();
  24. });
  25. });
  26. /***********************************************************************************************************************
  27. * 전체체크박스 / 체크박스 연동
  28. ***********************************************************************************************************************/
  29. $(function() {
  30. $(document).on('change', '[data-checkbox]', function() {
  31. var $check = $(this);
  32. var is_all = $check.data('checkbox-all') != null ? true : false;
  33. var name = $check.data('checkbox');
  34. var checked = $check.prop('checked');
  35. var $allCheck = is_all ? $check : $('[data-checkbox="'+name+'"][data-checkbox-all]');
  36. if( is_all ) {
  37. $('[data-checkbox="'+name+'"]').prop('checked', checked );
  38. }
  39. else {
  40. $allCheck.prop('checked', $('[data-checkbox="'+name+'"]').not('[data-checkbox-all]').length == $('[data-checkbox="'+name+'"]:checked').not('[data-checkbox-all]').length);
  41. }
  42. });
  43. });
  44. /***********************************************************************************************************************
  45. * 숫자 3자리마다 Comma 자동 입력
  46. ***********************************************************************************************************************/
  47. $(function() {
  48. $(document).on('keyup', '[data-number-format]', function(e) {
  49. $(this).val( $(this).val().trim().unNumberFormat().numberFormat() );
  50. })
  51. });
  52. /***********************************************************************************************************************
  53. * 숫자만 입력가능한 Input
  54. ***********************************************************************************************************************/
  55. $(function() {
  56. $(document).on('keypress', '[data-number-only]', function(e) {
  57. if (e.which != 8 && e.which != 0 && e.which != 45 && (e.which < 48 || e.which > 57)) {
  58. e.preventDefault();
  59. }
  60. })
  61. });
  62. /***********************************************************************************************************************
  63. * 높이 자동조절되는 Textarea
  64. ***********************************************************************************************************************/
  65. $(function() {
  66. $(document).on('keyup','textarea[data-autosize]', function(e) {
  67. autosize($(this));
  68. });
  69. $('textarea[data-autosize]').keyup();
  70. });
  71. $(function() {
  72. /***********************************************************************************************************************
  73. * 핸드폰 번호 Input
  74. ***********************************************************************************************************************/
  75. $('body').on('keypress', '[data-regex="phone-number"]', function(e){
  76. if (e.which != 8 && e.which != 0 && e.which != 45 && (e.which < 48 || e.which > 57)) {
  77. e.preventDefault();
  78. }
  79. }).on('blur','[data-regex="phone-number"]', function(e){
  80. if($(this).val() == '') return;
  81. var transNum = $(this).val().regex('phone');
  82. if( transNum === false ) {
  83. toastr.error('유효하지 않은 전화번호 입니다.');
  84. $(this).val("");
  85. $(this).focus();
  86. return;
  87. }
  88. $(this).val(transNum);
  89. });
  90. /***********************************************************************************************************************
  91. * 전화번호 Input
  92. ***********************************************************************************************************************/
  93. $('body').on('blur', '[data-regex="tel-number"]', function(e){
  94. if($(this).val() == '') return;
  95. var transNum = $(this).val().regex('tel');
  96. if( transNum === false ) {
  97. toastr.error('유효하지 않은 전화번호 입니다.');
  98. $(this).val("");
  99. $(this).focus();
  100. return;
  101. }
  102. $(this).val(transNum);
  103. });
  104. /***********************************************************************************************************************
  105. * 이메일주소 Input
  106. ***********************************************************************************************************************/
  107. $('body').on('blur', '[data-regex="email-address"]', function(e){
  108. if($(this).val() == '') return;
  109. var trans_num = $(this).val().regex('email');
  110. if(! trans_num) {
  111. toastr.error('유효하지 않은 이메일주소 입니다.');
  112. $(this).val("");
  113. $(this).focus();
  114. }
  115. });
  116. });