2013-03-05 3 views
0

Вот новый вопрос. Я хочу, чтобы мой Нан сказал: «Это не число», если ничего или текст не введен. Я знаю физический код, но я не знаю, куда его поместить, или если я должен сделать функцию. Где бы я ни сказал, он либо петли, и говорит, что когда-либо было введено первым, а затем «это не число» или «это не число», то NaN, или он вообще не работает.Где я могу разместить код NaN?

javacript: 
window.onload = function(){ 

var myDiv = document.getElementById("wrapper"); 
wrapper.setAttribute("align","center"); 
var startButton = document.getElementById("start"); 
var pauseButton = document.getElementById("pause"); 
var secondsBlock = document.getElementById("seconds"); 
var timer = document.getElementById("timer"); 
var newTime = document.createElement("h1"); 

    newTime.innerHTML = secondsBlock.value; 
    timer.appendChild(newTime); 

    //setTimeout(function countdown() { 
    var numbers = (newTime.innerHTML); 
    newTime.innerHTML = numbers; 

var newNumber; 

function countdown(count){ 

    newNumber =secondsBlock.value; 
    var numbers = (newNumber); 
    newTime.innerHTML = numbers; 

    stopper = setInterval(reduceAndShow, 1000); 

    if (numbers <10){ 
     newTime.style.color = "red"; 
     newTime.innerHTML = "0" + numbers; 
    }; 

}; 

function reduceAndShow(){ 
    newNumber--; 
    var numbers = (newNumber); 
    newTime.innerHTML = numbers; 

    stopCountdown(); 

    if (newNumber <10){ 
     newTime.style.color = "red"; 
     newTime.innerHTML= "0" + newNumber; 
    }; 


}; 

function stopCountdown(){ 
    if(newNumber <= 0){ 
    clearInterval(stopper); 
    }; 
}; 

startButton.onclick = function(){ 
    countdown(); 
}; 

function pauseBut(){ 
    clearInterval(stopper); 
}; 

pauseButton.onclick =function(){ 
    pauseBut() 
    }; 

html: 
<div id="wrapper"> 
Seconds: <input type="text" name= "seconds" id="seconds"> <input type="button"  
value="Start" id="start"> <input type="button" value="Pause" id="pause"> 

<div id="extraText"></div> 

<div id="timer"></div> 
</div> 
+0

Вы можете разместить остальную часть кода, или даже лучше, демо. –

+1

как вы добавляете демонстрацию своего слова, мой код слишком длинный, чтобы добавить – user2136106

+0

Я изменил свой ответ, чтобы отразить код, который вы опубликовали. Надеюсь, это то, за чем ты был. Убедитесь, что вы видите, работает ли он, щелкнув по этому URL-адресу: http://jsfiddle.net/QxdUy/ – Jodes

ответ

0

Похоже, очень простой случай

if (typeof(seconds.value) == "number") { newTime.innerHTML = seconds.value; } 
else { newTime.innerHTML = "This is not a number"; } 
timer.appendChild(newTime); 
+1

это (из моего небольшого знания javascript) все еще показывает, что я набрал в коробке, прежде чем он покажет, что это не номер – user2136106

2

Вы должны получить ваш пример работает в JSFiddle.net, чтобы люди могли видеть все это, и исследовать для вас, почему он не работает.

Here's one I made for you.

Я изменил свой код ниже. Основное различие заключается в том, что я разбил его на две функции. Один, который проверяет, что вход является допустимым номером, а другой выполняет подсчет/показ. Еще одна маленькая вещь, которую я изменил был, как вы объявленную функцию обратного отсчета, вы как бы заявил, что в два раза, я изменил его, так что это только заявил однажды:

window.onload = function(){ 

    var myDiv = document.getElementById("wrapper"); 
    var startButton = document.getElementById("start"); 
    va r pauseButton = document.getElementById("pause"); 
    var secondsBlock = document.getElementById("seconds"); 
    var timer = document.getElementById("timer"); 
    var newTime = document.createElement("h1"); 


    function countdown(count) { 
     newTime.innerHTML = count; 
     if (count < 10) { 
      newTime.style.color = "red"; 
     }; 
     timer.appendChild(newTime); 
     if (count > 0) { 
      setTimeout(function() { 
       countdown(count - 1); 
      }, 1000); 
     } 
    } 


    function testInput() { 
     var count = seconds.value; 
     if (count == "" || isNaN(count)) { 
      newTime.innerHTML = "This is not a number"; 
      timer.appendChild(newTime); 
     } else if (count > 100) { 
      newTime.innerHTML = "Number must be between 0 and 99" 
      timer.appendChild(newTime); 
     } else { 
      countdown(count); 
     } 

    } 

    startButton.onclick = testInput; 
} 
Смежные вопросы