submit이나 button에 동작이 걸려있는 경우, 여러번 클릭했다가 동작이 여러번 처리되는 경우가 종종 발생합니다.
간단하게 버튼이 한 번만 눌릴 수 있게 하는 방법을 소개하겠습니다.
<!DOCTYPE>
<HTML>
<HEAD>
<TITLE> 중복클릭방지! </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
</HEAD>
<BODY>
<form name="form">
<input type="submit" id="button1" value="등록" onclick="OnlyOneClick();">
</form>
</BODY>
<script>
var once = true; // 최초 1회
function OnlyOneClick() {
if (once) {
once = false; // 1회 들어오고 그 다음은 막는다.
return true; // 최초 1회 return 은 true
} else {
return false; // 2회 부터 false
}
}
var id = document.getElementById('button1');
id.addEventListener('click', function () {
var ooc = OnlyOneClick(); // 1회에는 true 를 return 받고 그 다음은 false
if (ooc) {
console.log('입장');
} else {
//alert("이미 등록 되었습니다.")
console.log('입장불가')
document.getElementById('button1').disabled = true;
}
})
</script>
</HTML>
자바스크립트에서 'button1' 이라는 id를 가진 버튼이 한 번만 눌리더라도 바로 비활성화되게 처리하였습니다.
(ps. 오래 전에 어느 블로그에서 참고하여 회사 사이트에 적용한 로직인데 블로그를 찾지 못하였읍니다 ㅜㅜ)