Простое «если» утверждение внутри функции не работает - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужна помощь.Я делаю проект и создаю простой опрос.Код у меня должен работать.После нажатия кнопки «да» следует добавить 1 к переменной «artscore».Затем, когда я нажимаю «отправить», он должен проверить, превышает ли переменная значение «1», и если оно говорит «Вы художник», а если оно не больше 1, то должно появиться «Вы что-то другое».Однако всякий раз, когда я делаю это и нажимаю «Отправить», он всегда говорит «Вы что-то другое», даже когда я нажимал «Да» несколько раз.Это должно работать, но это не так.Я начинающий, и ответ может быть очень простым.Я сделал несколько прототипов, но я хочу выяснить, как сделать опрос таким образом.

Спасибо за любую помощь.

Кстати, HTML-часть этого кода была удалена.Этот веб-сайт не позволил бы мне вставить его. Это всего лишь часть JavaScript без начального тега script.В начале HTML просто было несколько кнопок, которые при нажатии запускали две функции.Кнопка да запускает функцию artFunction, а кнопка отправки запускает функцию submitFunction.Я также не знаю, почему код ниже состоит из двух частей.Спасибо за любую помощь, почему этот код не работает.

var artscore = 0;


function artFunction(){

   artscore = artscore + 1;

}

function submitFunction(){

    if (artscore > 1){
     alert("You are an artist");
    } else {
    alert("You are something different");
    }
}

Ответы [ 4 ]

0 голосов
/ 23 ноября 2018

Измените

if (artscore > 1)

на

if (artscore >= 1)

, а также проверьте, вызываете ли вы функцию.

0 голосов
/ 23 ноября 2018

Я бы посоветовал конкретизировать ваш код, т.е.

function submitFunction(){
    if (artscore >= 1){
        alert("You are an artist");
    } else if (artscore < 1){
        alert("You are something different");
    } else {
        alert("An error has occurred!");
    }
}
0 голосов
/ 23 ноября 2018

Я не совсем уверен, решит ли это проблему, но проблема может быть в операторе if в функции submit.В настоящее время вы проверяете, больше ли artscore больше 1, но вы добавляете его в artscore.Вместо этого вы должны проверить, больше ли artscore или равно 1. Надеюсь, это поможет !!

0 голосов
/ 23 ноября 2018

Вам не хватает >=, вы используете>, потому что> когда вы нажимаете кнопку «Искусство» в первый раз, она показывает «Вы что-то другое» сообщение вместо «Выхудожник "

var artscore = 0;


function artFunction(){
   //console.log(artscore);
   artscore = artscore + 1;

}

function submitFunction(){
    //console.log(artscore);
    if (artscore >= 1){
     alert("You are an artist");
    } else {
    alert("You are something different");
    }
}
<div id="wrapper">

  <h1>What type of field are you interested in?</h1> 
  <p>Take this questionnaire to find out!</p> 
  <h2> ART1 <h2> 
  <input id="button" type="submit" name="button" onclick="artFunction();" value="Yes"/>
  <button type="button">No</button>
  <input id="button" type="submit" name="button" onclick="submitFunction();" value="Submit"/>
  </div> 
...