2014-10-13 5 views
0

사용자가 프롬프트에 입력하는 매 n 초마다 확인 창을 표시하지만 입력에 관계없이 확인 창이 즉시 팝업되도록하려고합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?setInterval이 올바르게 작동하지 않습니다.

<button onclick="timer_prompt()">FUN</button> 

내 간단한 기능 :

function timer_prompt() 
{ 
    var seconds = prompt("Enter Time Interval In Seconds Please"); 
    seconds = seconds*1000; 
    if(seconds>0) 
    { 
    setInterval(confirm_timer(), seconds); 
    } 
     else 
     { 
     alert("You entered invalid content"); 
     } 

} 


function confirm_timer() 
{ 
    confirm("YOU HAVE SET A TIMER!!!"); 
} 
+4

당신이 그것을 – A1rPun

답변

6

당신은

을 할

setInterval(confirm_timer(), seconds); 

요구를 할당하지, 호출 여기

내 버튼처럼 보이는 것입니다
setInterval(confirm_timer, seconds); 
+1

나는 "당신은 호출하지 * * 참조하는"말을 실행하는 대신 함수 참조를 전달해야 –

+0

는 그 시도하지만 여전히 작동하지 않았다. 값을 입력 한 후 확인 창이 나타나지 않습니다. – user3362580

1

setInterval은 함수의 첫 번째 인수로 함수를 사용하므로 함수의 반환 값을 전달합니다. setInterval의 confirm_timer에서 괄호를 제거하십시오.

0

왜 이런 식으로 시도하지 않으시겠습니까?

function timer_prompt() { 
    var seconds = prompt("Enter time interval in seconds please."); 
    seconds = seconds * 1000; 

    if(seconds > 0) { 
     callInterval(seconds); 
    } else { 
     alert("You entered invalid content"); 
    } 
} 


function callInterval(seconds) { 
    setTimeout(function() { 
     confirm("You have set a timer!"); 
     callInterval(seconds); 
    }, seconds); 
} 

timer_prompt(); 
관련 문제