form태그 내부에 있는 input text box에서 Enter를 누르게 되면 자동으로 Submit이 되면서 페이지가 재로드 됩니다.
(Ajax를 사용할때, 이 부분에서 상당히 애를 먹었습니다.)
이를 방지하기 위한 3가지 방법이 있습니다.
1. form태그의 onsubmit속성값 이용
<form name="searchForm" onsubmit="return false;" method="post">
onsubmit="return false;"으로 설정해주면 자동 submit을 방지할 수 있습니다.
2. keycode 값으로 enter여부를 판단하여 처리
<script language="javascript">
//enter방지
function captureReturnKey(e) {
if(e.keyCode == 13 && e.srcElement.type != "textarea")
return false;
}
</script>
<form name="searchForm" method="post" onkeydown="return captureReturnKey(event)">
<input type="text" name="test">
</form>
onkeydown으로 키보드 버튼 클릭 시 captureReturnKey함수를 호출하도록 하고, keyCode 13(엔터)일 경우 return false로 엔터키를 방지할 수 있습니다.
3. input 박스 추가
<div class="srchForm">
<input type="text" style="display:none;"/> <!-- 의미없는 텍스트 박스 -->
<input type="search" class="input" onkeydown="javascript: if(event.keyCode == 13) {mf_keyDown();}}">
</div>
엔터키를 눌렀을때 자동으로 submit되는 원인은 form내부에 input 박스가 한 개만 존재하기 때문입니다.
따라서, 의미없는 input 박스를 추가하여 이를 방지할 수 있습니다.
위 세가지 방식이 있지만 1번 방법이 가장 깔끔한 것 같습니다.
Reference
'STUDY > JSP&Spring' 카테고리의 다른 글
[JSP&Spring] spring boot에서 post요청이 안될때 (0) | 2020.01.24 |
---|---|
[JSP&Spring] @ResponseBody @RequestBody사용 (0) | 2019.10.18 |
[JSP&Spring] Restful API를 활용한 Spring 게시판 구축 (0) | 2019.05.01 |
[JSP&Spring] Spring교육 3일차 내용 정리 (0) | 2019.03.02 |
[JSP&Spring] Spring교육 2일차 내용 정리 (0) | 2019.02.26 |