구구단 화면 만들기
Make a multiplication table screen
이벤트리스너가 반복문 역할을 하고있지만 항상 반복문 역할을 하는 것은 아니다.
input type="text" 는 텍스트 형식이기 때문에 숫자로 바꿔줘야한다.
var num1 = Math.ceil(Math.random() * 9);
var num2 = Math.ceil(Math.random() * 9);
var result = num1 * num2;
var body = document.body;
var word = document.createElement('div');
word.textContent = String(num1) + '곱하기' + String(num2) + '는?';
document.body.append(word);
var fform = document.createElement('form');
document.body.append(fform);
var 입력창 = document.createElement('input');
입력창.type = 'number';//이렇게 해줘도 입력창.value는 숫자로 되지 않는다.
fform.append(입력창);//document>body가 아니라 form 하위에 만들어줘야하기 때문에.
var btn = document.createElement('button');
btn.textContent = '입력';//태그 안에 들어가는 글자.
fform.append(btn);
var result = document.createElement('div');
document.body.append();
//form 안에서 input은 엔터키를 사용할 수 있다. 이 때 새로고침되는 현상만 해결해주면 된다.
form.addEventListener('submit',function(e){//function이 콜백함수로 쓰였다.
e.preventDefault();//엔터를 치면 다음 페이지로 넘어가는 form의 기본 동작을 막는다.
if(result === Number(입력창.value)) {//숫자로 형변환해주어야한다. 그렇지 않으면 input type을 'number'로 해주면 된다.(14번째 줄 추가)
console.log(result,입력창.vlaue);//error 원인을 알 수 있다. 입력창.value 값이 문자로 나오기 때문에 숫자값이 같아도 다르게 나온다.
result.textContent = '딩동댕';//정답이라면 다음 랜덤문제를 생성해야한다.
num1 = Math.ceil(Math.random() * 9);//기존 변수를 수정하는 의미에서 var을 붙이지 않는다.
num2 = Math.ceil(Math.random() * 9);
result = num1 * num2;
word.textContent = String(num1) + '곱하기' + String(num2) + '는?';
입력창.value = ' ';
입력창.focus();
} else {
result.textContent = '땡';
입력창.value = ' ';
입력창.focus();
}
});
Last updated