Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

[jQuery] Form Submit 할 때 AJAX 이용하여 Value 체크

2011-09-06 by 편리

괜한 것을 한번 해보겠다고 아침부터 덤벼서 이제야 조금 답이 보이기 시작했다. 어제 퇴근 길에 괜한 생각을.. ㅋ
내가 조심해야 할 것은 퇴근 길 버스 안에서 쓸데없는(?) 생각을 하지 않는 것이다. 항상 이것때문에 내가 힘들다는..

구현하려고 했던 것이 무엇이냐하면 회원들의 회비를 입력하는 폼이 있는데 이 때 AJAX를 이용해서 회원등급에
따라 회비 금액이 맞는지 체크하고자 했다. 관리자가 입력하는 부분이기 때문에 설령 맞지 않더라도 입력을 할 수
있도록 해야할 것 같았고.. PHP에서 체크하는 방법으로 처음에 구현을 했는데 이럴 경우 강제로 입력하도록 하는
부분이 막히고.. 그래서 자바스크립트를 이용하는 방법을 생각했다. 물론 유일하게 사용할 수 있는 jQuery를.. ^^;

아래는 바로 그 코드이다.

<form name=”fee” method=”post” action=”feeupdate.php”>
… 코드 ..

<input type=”button” id=”Submit” value=”확 인” />
</form>

<script type=”text/javascript”>
$(function() {
$(‘input#Submit’).click(function(event) {
var id = $.trim($(‘input[name=mb_id]’).val());
var amount = parseInt($.trim($(‘input[name=amount]’).val()));
var month = parseInt($.trim($(‘input[name=month]’).val()));
var limit = $.trim($(‘input[name=limit]’).val());
if(!id) {
alert(“회원아이디를 입력해 주십시오.”);
return false;
}
if(!amount) {
alert(“입금금액을 입력해 주십시오.”);
return false;
}
if(!month) {
alert(“선납기간을 입력해 주십시오.”);
return false;
}
$.get(
‘check.php’,
{ id: id, limit: limit },
function(data) {
if(data == “100”) {
alert(“회원아이디를 올바르게 입력해 주십시오.”);
return false;
} else if(data == “200”) {
alert(“존재하지 않는 회원 아이디 입니다.”);
return false;
} else if(data == “300”) {
alert(“탈퇴한 회원 아이디 입니다.”);
return false;
} else if(data == “400”) {
alert(“접근이 차단된 회원 아이디입니다.”);
return false;
} else if(data == “500”) {
alert(“입력한 아이디는 일반회원 아이디입니다.”);
return false;
} else if(data == “600”) {
alert(“유효기간이 올바르지 않습니다. 다시 확인해 주십시오.”);
return false;
} else {
var fee = parseInt(data);
if((amount / month) < fee) {
if(confirm(“회원 유형과 회비금액이 일치하지 않습니다.nn이를 무시하고 회비를 입력하시겠습니까?”)) {
$(‘form[name=fee]’).submit();
} else {
return false;
}
} else {
$(‘form[name=formfee]’).submit();
}
}
}
);
return false;
});

});

이 코드는 여러 번의 수정을 걸쳐서 원하는 대로 작동을 하는 코드이다. IE9와 Firefox 6에서 테스트 했다.

처음에는 $(‘form[name=fee]’).submit(function(event) { ….. }); 이런 식으로 체크를 하려고 했는데 이렇게 했을 경경우 $.get AJAX call이 완료가 되기도 전에 form 이 submit 되는 문제가 있었다. 그래서 다음으로 시도했던 방법은 <input type=”submit” id=”Submit” value=”확 인” /> 이런 식으로 확인 버튼을 변경해서 $(‘input#Submit’).submit(function(event) { ….. }); 이런 식으로 체크를 하도록 했는데 IE9에서는 이 방법이 정상적으로 먹히지만 Firefox에서 테스트하니 처음과 같은 문제가 발생했다. 대부분 IE를 사용해서 수정하지 않아도 크게 문제될 부분은 없을 거라 생각을 했지만.. 여기서 또 쓸데없는 자존심이라고 해야할까? Firefox에서도 제대로 되게 해보자라는 생각이 들어서 검색과 코드 수정 그리고 테스트.. 몇 시간이 걸려서 겨우 방향을 잡았다. 자바스크립트에 대해서 워낙 기본 지식이 없다보니 이런 문제가 생겨도 혼자서는 해결 할 수가 보통은 없다. ^^;

위에 보면 자바스크립트 마지막 부분에 return false; 라는 부분 때문에 submit 이벤트가 실행이 되면 안되는데 이게 자꾸 실행이 되는 것이 문제였다. 이벤트 실행을 멈춰보려고 여러 방법을 사용해봤지만 도무지 되지를 않아서 나머지 방법이라 생각하고 $(‘input#Submit’).submit(function(event) { ….. }); 를 $(‘input#Submit’).click(function(event) { ….. }); 라고 변경을 해봤다. 근데 왠걸 내가 원했던 대로 실행이 되는 것이었다. 지금까지 도대체 뭘 한걸까? 라는 의문이 들어 정말 미칠 것 같았지만 그래도 내가 원하는 대로 작동을 했기 때문에 사실은 너무도 기분이 좋았다. 이 맛에 코딩을 아직 하고 있는지도 모르겠다. 이런 거라도 없으면 벌써 그만둬도 그만뒀을 것이라 난 굳게 믿고 있다.

간혹 <input type=”image” src=”…” /> 이런 식으로 버튼을 보여주는 경우가 있는데 이 때도 역시 click 이벤트가 일어났을 때 체크하도록 하면 문제없이 작동한다는 것을 알았다. form 안에 있는 버튼이기 때문에 submit 이벤트라고 생각했던 것이 정말 바보 같은 짓이었던 것이다. 기본이 없으니 이럴 수 밖에 없지만 말이다. ㅋㅋ

근데 이렇게 하는 것이 맞는 것인지는 솔직히 자신은 없다. 자바스크립트에 대해서 기본부터 다시 공부를 해야겠다.
 

Post navigation

Previous Post:

디자이어 롬 Cool BravoS v6

Next Post:

이것 참..

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • SK 세븐모바일 유심 셀프교체
  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes