728x90
input Box가 하나이고, 값을 입력 후 enter키를 누르면 submit이 돼버리는 현상이 생겼다.
이 문제를 해결하기 위한 방법 3가지를 적어보려고 한다.
1. input Box를 하나더 생성한다. style로 숨기기.
<form id="searchForm" name="searchForm">
<input type="text" title="검색어 입력" id="search01" name="search01" value="">
</form>
원래의 소스에 style display:none인 input을 추가해준다. * type은 text *
display:none - 아예 사라지게 하는 것. 보이지도 않고 해당 공간도 존재하지 X
visibility:hidden - 보이지만 않고 해당 공간은 존재. width와 height값을 주었다면 그만큼 공간은 존재
<form id="searchForm" name="searchForm">
<input type="text" title="검색어 입력" id="search01" name="search01" value="">
<input type="text" style="display:none">
</form>
2. keycode값을 판단해서 처리해준다. (추천)
preventDefault : 브라우저 고유의 동작을 중단
stopPropagation : 부모 엘리먼트에게 이벤트 전달을 중단
document.폼name.addEventListener("keydown", evt => {
if (evt.code === "Enter")
evt.preventDefault();
});
3. form 태그의 속성값으로 막아주기.
<form onsubmit="return false"></form>
'js' 카테고리의 다른 글
[JavaScript] div setTimeout display block/none (0) | 2021.11.12 |
---|---|
[jQuery] enter Event 처리하기 keyCode / key (0) | 2021.11.04 |
[jQuery] 파일 업로드 input type = 'file' 다중으로 생성하기 (2) | 2021.10.26 |
[jQuery] 동적 추가된 append에 click event 처리 (0) | 2021.10.26 |
[AJAX] 다중 fileupload / formData 이용하여 JSON 파라미터 넘기기 & 파일업로드 구현 (1) | 2021.10.22 |