일반 button을 누를 경우, (버튼에 설정해놓은 이벤트 외에 추가로) 페이지가 제멋대로 reload 되는 경우가 있다.
[원인]
button이 form 태그 안에 있을 경우 발생한다.
덧붙여, button의 type 속성의 기본 값은 'submit'이다.
즉, 버튼을 클릭할 경우
1 2 3 | <form method="POST"> <button name="data" type="submit" onclick="getData()">Click</button> </form> | cs |
위와 아래 코드는 같은 동작을 한다.
1 2 3 | <form method="POST"> <button name="data" onclick="getData()">Click</button> </form> | cs |
[해결]
두가지 방법이 있는데, 상황에 따라 적절히 활용하면 될 것이다.
첫번째 방법은, button의 type을 'button'으로 설정하거나,
1 2 3 | <form method="POST"> <button name="data" type="button" onclick="getData()">Click</button> </form> | cs |
두번째는, form 태그를 div로 대체하면 된다.
1 2 3 | <div> <button name="data" type="button" onclick="getData()">Click</button> </div> | cs |
http://stackoverflow.com/questions/7803814/prevent-refresh-of-page-when-button-inside-form-clicked
'컴퓨터 > HTML' 카테고리의 다른 글
[CSS] z-index와 쌓임 맥락(Stacking Context) (0) | 2017.01.12 |
---|---|
[CSS] 레이아웃 뭉개지는 문제 및 해결 방법 (진행중) (0) | 2016.10.31 |