총합 구하기
버튼을 클릭할 때마다 자동으로 새로고침이 되며 input 칸 안의 데이터가 초기화되버리는 문제가 있었다.
<!DOCTYPE html>
<html lang="ko">
<head>
<title>Document</title>
<script lang="javascript">
function sum() {
let num = Number(table.numInput.value) + 1;
let result = 0;
console.log(num)
for(let i = 0 ; i < num ; i++){
result = result + i;
console.log(result);
}
table.numSum.value = `${result}`;
};
</script>
</head>
<body>
<form name="table">
<table border="2">
<tbody>
<tr>
<td align="center">목표 숫자</td>
<td><input name="numInput" width="300" /></td>
</tr>
<tr>
<td align="center">총합</td>
<td><input name="numSum" width="100" /></td>
</tr>
</tbody>
</table>
<br />
<button onclick="sum()">총합 구하기</button>
</body>
</html>
form 태그 안의 button
태그는 서버에 폼을 제출하는 submit
이벤트로 작동한다. 따라서 버튼을 클릭할 때 마다 submit이 작동하지만 submit에 대한 코드를 작성하지 않았으니 새로고침만 되었을 것이다.
</form>
을 버튼태그보다 위에 입력한다.또는
<button
을 <input type=button
으로 바꾼다.또는
onclick="sum()"
을 삭제하고, 폼 태그에 onsubmit="sum()"
을 넣는다.