问题在于它不显示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>
答案 0 :(得分:0)
仅在第一次读取脚本标签时才读取输入值。
或者,换句话说:您正在调用函数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>
答案 1 :(得分:0)
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>
答案 2 :(得分:0)
我对该函数进行了一些重构。我不知道您要使用什么值进行测试,但是对于每个<18的值,第一个IF语句将被第二个IF语句否决。我认为这是您的问题。
您可以在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));