Обновите ваш скрипт до следующего
<script>
function check_pal() {
// move this line inside the function
var i = document.getElementById('boiler').value;
// rev(); // Also removed this un-necessary call
if (i == rev(i)) {
alert(i + " is a palindrome");
} else {
alert(i + " is not a palindrome")
}
}
// modify function to take input as argument rather than relying on global variable
function rev(i) {
i = i + "";
return i.split("").reverse().join("");
}
</script>
Reasoning - Когда вы вручную присвоили значение i, оно работало правильно. Однако, когда мы пытались прочитать его из getElementById
, элемент к тому времени не существовал, и он выдает ошибку JS (не может прочитать свойство 'value', равное null), следовательно, ошибку (так как я никогда не инициализировался и остается undefined
). Переместите извлечение значения в функцию, где последнее значение может быть извлечено и сохранено в i.