#javascript #html #output #getelementbyid
#javascript #HTML #вывод #getelementbyid
Вопрос:
function sub() {
var num1 = parseInt(document.getElementById("imp").value);
var yes = "Yup!"
var no = "Nope..."
if (imp == "true") {
output(yes);
} else if (imp == "false") {
output(no)
}
}
function output(x) {
document.getElementById("result").innerHTML = x;
}
body {
background:green;
background-repeat: no-repeat;
background-size: cover;
font-family: 'Roboto', sans-serif !important;
}
h1 {
text-align: center;
color: #ffffff;
font-size: 4em;
text-shadow: 4px 4px #000000;
}
p {
text-align: center;
color: #ffffff;
font-size: 4em;
text-shadow: 4px 4px #000000;
}
<p>TRUE OR FALSE</p>
<p>Polar bears have black skin.</p>
<input type="text" id="imp">
<button onclick="sub()">Submit</button>
<div id="result"></div>
Комментарии:
1.
imp == "true"
неimp
является ли HTMLInputElement элементом? Почему это вообще должно быть «true»? Вы имели в видуnum1
?2. Боже мой… Я только что понял. Да, это то, что я имел в виду.
3. Вы должны узнать о том, как использовать отладчик — они позволяют быстро находить такие «простые» ошибки, и все время от времени их совершают. PS: Я не знаю, все ли это проблемы вашего кода, это было только первое, на чем я застрял.
Ответ №1:
Во-первых, кажется, вы хотели проверить значение num1
, а не imp
(которого не существует в вашем коде, но это имя элемента, из которого вы получаете значение). Я просто изменил имя переменной userInput
на, чтобы было более понятно, что вы получаете от пользователя.
Во-вторых, вы ожидаете либо «истинную», либо «ложную» строку от пользователя для проверки, но вы пытаетесь преобразовать ее в целое число. Удалите parseInt()
. Вместо этого я добавил toLowerCase()
в конце, чтобы предотвратить ошибку в сценарии, в котором пользователь использует любую заглавную букву («True», «False», «tRuE», «fAlSe» и т. Д.).
Наконец, я бы рекомендовал добавить заключительный else
оператор в конец вашей условной проверки в качестве запасного варианта на случай, если пользователь не введет «true» или «false» (всегда защищайте свой пользовательский интерфейс от ошибок, если пользователь ввел что-то необычное или неожиданное).).
function sub() {
var userInput = document.getElementById("imp").value.toLowerCase();
var yes = "Yup!";
var no = "Nope...";
var idk = "Invalid input";
if (userInput == "true") {
output(yes);
} else if (userInput == "false") {
output(no);
} else {
output(idk);
}
}
function output(x) {
document.getElementById("result").innerHTML = x;
}
body {
background:green;
background-repeat: no-repeat;
background-size: cover;
font-family: 'Roboto', sans-serif !important;
}
h1 {
text-align: center;
color: #ffffff;
font-size: 4em;
text-shadow: 4px 4px #000000;
}
p {
text-align: center;
color: #ffffff;
font-size: 4em;
text-shadow: 4px 4px #000000;
}
<p>TRUE OR FALSE</p>
<p>Polar bears have black skin.</p>
<input type="text" id="imp">
<button onclick="sub()">Submit</button>
<div id="result"></div>
Комментарии:
1. Спасибо! Я использовал некоторый код из скрипта калькулятора и, наверное, забыл кое-что изменить.