form 태그에서 button 태그 사용시 submit 과 함께 새로고침 되는것 막는 방법
아래 코드를 보면 <form> 태그가 있고 form 안에 <button>이 있습니다. 그리고 이 버튼에는 onclick 이벤트를 처리하는 핸들러 함수로printHello()가 지정되어 있어 input창에 값을 입력하고 버튼을 클릭하면 hello! xx가 출력될것을 의도하였습니다.
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 
 
<script type="text/javaScript" language="javascript"   defer="defer">
function printHello(){
     console.log("hello!" + document.greeting.name.value);
}
</script>
 
 
<form name="greeting">
    이름 : <input type="text" name="name"><br>
    <button onclick="printHello();">버튼</button>
</form>
</body>
</html>
cs



그러나 버튼을 누르면 입력한 이름이 콘솔에 출력되는것아 아닌 form의 내용이 submit(전송) 이벤트가 발생하면서 새로고침이 되어버립니다.



원인은 단순한데 <form> 태그 안에서의 <button> 태그는 기본적으로 클릭시 submit 이벤트를 실행시키도록 되어있기 때문입니다. 즉 <input type="button">과 같은 동작을 하게됩니다. 

해결 방법은 간단한데 buttontype 속성을 button으로 지정해주기만 하면 됩니다.
<form name="greeting">
    이름 : <input type="text" name="name"><br>
 
    <button type="button" onclick="printHello();">버튼</button>
</form>
cs




submit되어 새로고침 되지 않고 이벤트 핸들러 함수가 실행되는 모습입니다.



'HTML&CSS' 카테고리의 다른 글

[HTML] <label> 태그란?  (0) 2019.07.23
[HTML] <h> 태그로 제목 표시하기  (0) 2019.07.20
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,