$(function(){ $fn = $('form[name="fn"]'); // 처음 공백으로 시작하면 : text space 제거 $(document).on('keyup','input[type="text"], textarea', function(e){ e.preventDefault(); var $this = $(this); if($this.val().substr(0,1) == ' ') $(this).val($this.val().replace(/\s/g,'')); }); // 콤마 넣기 $fn.on('keyup','input.number', function(e){ //e.eventDefault(); var $this=$(this); $(this).val($this.val().replace(/[^0-9]/g,'')); if($this.val().length>=2 && $this.val().substr(0,1)==0) $(this).val(''); if($this.val().length>=4) $(this).val($.number($(this).val())); }); // 견적 구분 체크박스 $fn.find('input[name="quotation_kind_array[]"]').on('click', function(e){ var $this = $(this); var thisChecked = $this.prop('checked'); $fn.find('input[name="quotation_kind_array[]"]').prop('checked', false); if(thisChecked === true) $this.prop('checked', true); }); // Yes / No 체크박스 $fn.find('input[type="checkbox"].yn').on('click', function(e){ var $this = $(this); var thisChecked = $this.prop('checked'); $this.closest('li').find('input[type="checkbox"].yn').prop('checked', false); if(thisChecked === true) $this.prop('checked', true); // submit 에서 미체크시 라인 생기게 한것 remove $this.closest('ul').find('li').eq(0).removeClass('underline underlinePos underlineColorRed'); }); // submit $('#submitQuotation').on('click', function(e){ e.preventDefault(); var $this = $(this); var content2 = $('#content2'); var content3 = $('#content3'); var scrollTopGap = 300; var scrollTopSpeed = 300; var returnCheck = true; // 프로젝트 세부정보 구분 if(content3.find('input[type="checkbox"][name="quotation_kind_array[]"]:checked').length <= 0){ alert(content3.find('ul').attr('data-alert')); $('html, body').animate({scrollTop : (content3.find('input[type="checkbox"][name="quotation_kind_array[]"]').offset().top - scrollTopGap)}, scrollTopSpeed); return false; } // input text / checkbox $.each(content2.find('input'), function(){ switch($(this).attr('type')){ case 'checkbox': if($(this).closest('li').find('input[type="checkbox"]:checked').length <= 0){ alert($(this).closest('ul').find('li').eq(0).text() +' '+ content2.attr('data-alert3')); $(this).closest('ul').find('li').eq(0).addClass('underline underlinePos underlineColorRed'); $('html, body').animate({scrollTop : ($(this).offset().top - scrollTopGap)}, scrollTopSpeed); returnCheck = false; return false; } break; default: switch($(this).attr('name')){ case 'file1_name': // 첨부파일 : 첨부파일은 보안상 value 값이 없다 break; default: if($(this).val() == ''){ alert($(this).attr('placeholder') +' '+ content2.attr('data-alert2')); $('html, body').animate({scrollTop : ($(this).offset().top - scrollTopGap)}, scrollTopSpeed); $(this).val('').focus(); returnCheck = false; return false; } break; } break; } }); if(returnCheck === false) return false; // each return false // note (memo) if(content2.find('textarea[name="note"]').val() == ''){ alert('Note '+ content2.attr('data-alert2')); content2.find('textarea[name="note"]').val('').focus(); $('html, body').animate({scrollTop : (content2.find('textarea[name="note"]').offset().top - scrollTopGap)}, scrollTopSpeed); return false; } // submit if(confirm($this.attr('data-alert'))){ var actPage = 'submit_quotationWrite'; $this.prop('disabled', true); $fn.find('input[name="act"]').val(actPage); // act 값 부여 $.post('/'+ $fn.attr('data-stayName') +'/'+ actPage +'.php', $fn.serialize(), function(data, status){ if(status == 'success'){ var encodeNum = data; alert($this.attr('data-submited_alert')); // 제출 완료 alert // input file 이 있고 파일 첨부 상태면 -> enctype 추가 후 첨부 파일을 별도로 저장한다 if($fn.find('input[type="file"][name="file1_name"]').length > 0 && $fn.find('input[type="file"][name="file1_name"]').val().length > 0){ // 첨부 파일 등록 & 파일 첨부된 메일 발송 $fn.find('input[name="num"]').val(encodeNum).end().attr({'action':'/'+ $fn.attr('data-stayName') +'/submit_quotationFile.php', 'enctype':'multipart/form-data'}).submit(); } else{ // 이메일 발송 (파일 첨부 없음) method : get $fn.find('input[name="num"]').val(encodeNum).end().attr({'method':'get' ,'action':'/'+ $fn.attr('data-stayName') +'/submit_quotationEmail.php', 'fileYn':''}).submit(); } } else{ $fn.find('input[name="act"]').val('').end().find('input[name="num"]').val('').end().attr({'action':'', 'enctype':''}); $this.prop('disabled', false); alert('네크워크 에러 입니다\n인터넷 연결 상태를 학인 해 주세요'); } }); } }); }); // addFile $.getScript('/contactus/addFile.js', function(xhr, status, data){}); // 파일 사이즈, 파일명 특수문자 체크 함수 $.getScript('/common/fileCheck.js', function(xhr, status, data){});