본문 바로가기

Language/Java / JSP

[JSP] Form 작성시 자동 Submit 막기

반응형

이전에 form을 통한 데이터 전송부분을 개발하다가 의도치 않게 일이 잘 풀리지 않았던 기억이 있다.
당시의 기억을 되돌려보면, Text Box에 별다른 스크립트나 Form 태그에 특별한 액션을 걸어둔게 없는데도 불구하고
TextBox에서 Enter를 입력하면 해당 Form이 Submit 되는것이었다.

물론 해당 TextBox에는 유효성 체크를 위하여 스크립트를 걸어두어 스크립트를 타긴 타는데 의도하지 않은 submit도 일어난다.
당시 한창 야근중이라 심신이 지칠때로 지친상태라 간단한 문제였는데도 불구하고 해결하는데 다소 시간을 보냈다.

당시 이유는 간단했다.

<form name="frm" id="frm" method="post" action="testOk.jsp">
	<input type="text" name="pw" id="pw" value="" />
</form>


이렇게 전송항목이 1개인 경우에는 해당 TextBox에서 엔터 입력시 자동으로 Submit된다.
그것도 IE, FF, Chrome 가리지 않고 모든 브라우저에서!!

결론적으로 위와 같은 Case가 흔치는 않겠지만, 몇몇 방법을 통해 submit을 막을 수 있다.


1. 엔터 입력 제어
   - 키보드 입력의 엔터키를 판별하여 자바스크립트로 제어한다.

2. Form 태그에 onSubmit="return false;" 추가

3. input 태그를 하나더 추가한다
   - input type="hidden" 을 하나 더 둔다. 이렇게 하면 submit 되지 않는다.


나 같은 경우 3번의 방식으로 쓸모없는 hidden 값을 추가하여 해당 이슈를 처리하였다.

<form name="frm" id="frm" method="post" action="testOk.jsp">
	<input type="text" name="pw" id="pw" value="" />
	<input type="hidden" name="xxxx" id="xxxx" value="xxxx" />
</form>