자바스크립트 질문이요!!
본문
while(true){
var a = prompt("100보다 큰 숫자를 입력하시오.","");
if(a>=100){
break;
}
alert("다시.");
window.location.reload();
}
prompt();//이렇게 여러개 있고
prompt();
prompt();
prompt();
100보다 큰 숫자를 입력하면 break해서 반복문 빠져나오고 a가 100보다 작으면 다시 경고창이 뜨고 100보다 큰 숫자를 다시 입력하는 창을 뜨고 100보다 크게 입력하면 정상적으로 실행되서 다음 prompt로 넘어가게 하고 싶은데 실행해보니까 잘되는데 다음 prompt로 넘어가고 다 돌면 다시 while문으로 들어가드라구요... 그래서 100보다 큰 수를 입력하면 정확하게 출력은 되는데 근데 왜 이게 다시 반복이 될까요... 이거 왜 이럴까요 ㅠ
답변 4
다수의 필드에 틀릴때마다 alert 이후 리로드 라니..
의도된게 아니라면 사용자 입장에서 끔찍하겠군요..
리로드가 아니라 포커스 이후 문제가 된 필드 초기화 후
안내메시지를 모달 형태로 보여주면 좋을것 같습니다.
그냥 이런식으로 분류해서 다음 "prompt"로 넘어가는게 좋지 않을까요?
function A() {
while(true) {
var a = prompt("100보다 큰 숫자를 입력하시오.", "");
if (a > 100) {
// 여기에 넣어서 다음 "prompt" 실행
A();
break;
}
alert("다시");
}
function A() {
while ...
}
function B() {
while ...
}
window.location.reload();<--삭제하세요 조건에 맞지않으면 loop를 돌게 되는데 새로고침할 이유가 없죠
인풋에 대한 입력 감시는
일괄 채크하는것보다
포커스시 실시간으로 해당 인풋에 대해서만 채크 할수 있는 로직이
더 효율적입니다.
아래 온포커스 예제를 참조하셔서 코딩하시면 될것 같네요.