2016-10-28 3 views
0

Так что мой HTML является:Как активировать мой скрипт только при нажатии кнопки?

<!DOCTYPE> 
<head> 
    <script src="js/problem1.js"></script> 
</head> 
<body> 
    <input id="clickMe" type="button" value="Problem #1" onclick="problem1();" /> 
    <script src="js/problem1.js"></script> 
</body> 

Сценарий Я пытаюсь запустить это:

var counter = 0 
var total = 0  
var start = prompt("Enter a number here to find the sum of all numbers that are:\n-Between 0 and your number\n-Divisible by 3 or 5") 

    function problem1(start) { 
     for (counter = 0; counter < start; counter++) { 
      if (counter < start) { 
       if (counter % 3 == 0) { 
        total += counter; 
       } 
       else if (counter % 5 == 0) { 
        total += counter; 
       } 
      } 
      else if (counter == start) { 
       if (counter % 3 == 0) { 
        total += counter; 
        alert(total); 
       } 
       else if (counter % 5 == 0) { 
        total += counter; 
        alert(total); 
       } 
       else { 
        alert(total); 
       } 
      } 
     } 
    } 

Проблема Я бегу в том, что сейчас скрипт запускается при загрузке страницы и сразу же дает мне запрос на создание переменной start. После ввода целого числа и нажатия Ok окно подсказки исчезает и ничего не происходит. Я действительно понимаю, что скрипт работает сам по себе, потому что он вызывается в <head>. Проблема в том, что я не знаю, как еще назвать это, например, при нажатии кнопки. Я не хочу использовать JQuery. Я видел много ответов, таких как this one, но я ищу что-то, что не требует JQuery. Как бы я это сделал?

UPDATE

Спасибо за помощь. Теперь я наткнулся на вторую проблему. Я не могу получить скрипт для запуска или отображения предупреждения (не уверен, какой)

+0

Ваш 'приглашение()' находится за пределами функция, которую get вызывается нажатием кнопки. Просто переместите 'var start = prompt (...)' в вашу функцию. Также переместите в функцию 'var counter = 0' и' var total = 0'. –

+0

Спасибо. Это было. –

ответ

0

положить строку внутри функции проблемного

function problem1() { 
 
    var counter = 0 
 
    var total = 0  
 
    var start = prompt("Enter a number here to find the sum of all numbers that are:\n-Between 0 and your number\n-Divisible by 3 or 5") 
 

 
    for (counter = 0; counter < start; counter++) { 
 
     if (counter < start) { 
 
      if (counter % 3 == 0) { 
 
       total += counter; 
 
       alert(total); 
 
      } 
 
      else if (counter % 5 == 0) { 
 
       total += counter; 
 
       alert(total); 
 
      } 
 

 
     } 
 
     else if (counter == start) { 
 
      if (counter % 3 == 0) { 
 
       total += counter; 
 
       alert(total); 
 
      } 
 
      else if (counter % 5 == 0) { 
 
       total += counter; 
 
       alert(total); 
 
      } 
 
      else { 
 
       alert(total); 
 
      } 
 
     } 
 
    } 
 
}
<!DOCTYPE> 
 
<head> 
 
    <script src="js/problem1.js"></script> 
 
</head> 
 
<body> 
 
    <input id="clickMe" type="button" value="Problem #1" onclick="problem1();" /> 
 
    <script src="js/problem1.js"></script> 
 
</body>

+0

Спасибо. Но теперь я обнаружил, что окно предупреждения не отображается .... –

+0

@Weber, потому что вы не ставили предупреждение в своем первом состоянии – Beginner

+0

@NewbeeDev на самом деле не потому, что условие цикла установлено как счетчик

Смежные вопросы