Застрял и IF или ELSE - PullRequest
0 голосов
/ 27 мая 2020

Проблема в том, что он не показывает idade, на самом деле, чтобы дать ответ, зависит от того, что вы вводите во вход, т.е. функция распознает только первое условие.

Я пробовал отладить код, но я получаю:

Нет адаптера отладки, не могу отправить 'оценивать'

var idade = document.querySelector('input#nmd')
var n1 = Number(idade.value)
var res = document.getElementById('res')

function clicar() {
  if (n1 < 16) {
    res.innerHTML = ('Nao vota')
  }
  if (n1 < 18) {
    res.innerHTML = ('Voto opcional')
  } else if (n1 > 18) {
    res.innerHTML = ('Voto obrigado')
  }
}
<h1><strong></strong>Verificador de multas</strong>
</h1>
<input type="number" name="nmd" id="nmd" value="Digite">
<input type="button" value="ir" id="ir" onclick="clicar()">
<div id="res">
  <h2>Resultado...</h2>
</div>

Ответы [ 3 ]

0 голосов
/ 27 мая 2020

Надеюсь, это вам поможет. Примите ответ, если он поможет! Удачного кодирования!

function clicar () {

var idade = document.querySelector('input#nmd');
var res = document.getElementById('res');
  var n1 = Number(idade.value);
  if (n1 < 16) { 
    res.innerHTML = ('Nao vota') 
  } 
  if (n1 < 18) { 
    res.innerHTML = ('Voto opcional') 
  } else if (n1 > 18) { 
    res.innerHTML = ('Voto obrigado') 
  } 
}
<body>
          <h1><strong>Verificador de multas</strong></h1>
          <input type="number" name="nmd" id="nmd" value="Digite">
          <input type="button" value="ir" id="ir" onClick="clicar()">
          <div id="res">
            <h2>Resultado...</h2>
          </div>
</body>

Спасибо.

0 голосов
/ 27 мая 2020

Я немного переделал функцию. Я не знаю, какое значение вы используете для тестирования, но первый оператор IF будет отменен вторым для каждого значения <18. Я думаю, что это ваша проблема. </p>

Вы можете протестировать этот скрипт онлайн по адресу https://www.webtoolkitonline.com/javascript-tester.html

function clicar(n1) {

    if (n1 < 16) {res = 'Nao vota'} 

    if (n1 < 18) {res = 'Voto opcional'} 
    else 
        if (n1 > 18) {res = 'Voto obrigado'}
    return res
}

alert(clicar(10) + '|' + clicar(17) + '|' + clicar(44));

Что вы можете сделать, так это выйти из функции (использовать return), как только вы получите ответ. Кроме того, не забудьте указать n1 >= 18 вместо n1 > 18, иначе число 18 не сработает.

function clicar(n1) {
    if (n1 < 16) {return 'Nao vota'} 

    if (n1 < 18) {return 'Voto opcional'} 

    if (n1 >= 18) {return 'Voto obrigado'}

}

alert(clicar(10) + '|' + clicar(17) + '|' + clicar(44));
0 голосов
/ 27 мая 2020

Вы читаете входное значение только при первом чтении тега скрипта.

Или, другими словами: вы вызываете функцию clicar, не читая фактическое входное значение.

Ниже рабочий пример.

function clicar() {
    var idade = document.querySelector('input#nmd')
    var n1 = Number(idade.value)
    var res = document.getElementById('res')
    if (n1 < 16) {
        res.innerHTML = ('Nao vota')
    } else if (n1 < 18) {
        res.innerHTML = ('Voto opcional')
    } else if (n1 > 18) {
        res.innerHTML = ('Voto obrigado')
    }
}
<body>
<h1><strong></strong>Verificador de multas</strong></h1>
<input type="number" name="nmd" id="nmd" value="Digite">
<input type="button" value="ir" id="ir" onclick="clicar()">
<div id="res">
    <h2>Resultado...</h2>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...