WEB TIP/HTML-CSS

form에 input type=text가 1개있을때 엔터누르면 submit이 되는 현상

제프 2009. 3. 16. 20:55

이번에 로그인페이지를 만들면서 입력받는곳이 한군데만 있는데

엔터를 누르면 Submit이 되는거 같더군요.

 

1. 제가 사용한 소스

<form name="actFrm" id="actFrm">

     <input type="text" name="userID" id="userID" /><br />

     <input type="button" value="CHECK!" onClick="return goCheck();" />

</form>

 

2. 다른 소스-1

<form name="actFrm" id="actFrm">

     <input type="text" name="userID" id="userID" />

     <input type="text" name="userPWD" id="userPWD" /><br />

     <input type="submit" value="CHECK!" onClick="return goCheck();" />

</form>

 

3. 다른 소스-2

<form name="actFrm" id="actFrm">

     <input type="text" name="userID" id="userID" />

     <input type="text" name="userPWD" id="userPWD" /><br />

     <input type="button" value="CHECK!" onClick="return goCheck();" />

</form>

 

1번은 엔터 클릭시 아무 반응이 없어야 하는데 반응이 생기고

2번은 type="submit"이니까 엔터클릭시 goCheck() 함수를 실행

3번은 type="button"이니까 엔터클릭시 아무 반응이 없음.

type="text"가 1개있을때 엔터를 누르면 반응이 생기는게 이상해서

인터넷 검색을 해보니 Outsider's Dev Story 에 관련 내용이 잘 설명되어있네요.

 

해결 방법은 두가지가 있습니다

1. 스크립트를 통해서 엔터클릭을 막는 방법

2. html 만으로 제어하는 방법

 

저는 html만으로 제어하는게 심플해서 2번방법을 사용하고 있습니다

<input type="text" style="display:none;" />

위처럼 type="text"를 1개더 만들면 그런 현상이 없어지네요. 후훗~