我想从输入字段反转数字,数字不能为零。 通过按钮单击我想将结果显示为div元素。
我的代码中有错误:
str.substr不是一个函数 在HTMLButtonElement.reverse
我做错了什么?
这是我的代码:
HTML:
<input type="text" id="input">
<button id="btn">Check</button>
<div id="result"></div>
JavaScript的:
window.onload = function() {
var btn = document.getElementById("btn");
var str = document.getElementById("input").value;
var result = document.getElementById("result");
function reverse(str) {
if (str === "0") {
return result.innerHTML = "Number cannot consist 0";
} else {
return result.innerHTML = reverse(str.substr(1)) + str.charAt(0);
}
}
btn.addEventListener("click", reverse);
}
答案 0 :(得分:2)
问题是您没有从按钮点击的输入中获取最新值。在页面加载时,输入值为null
。因此它会引发错误。
试试这个:
function handleClick() {
var str = document.getElementById("input").value;
var result = document.getElementById("result");
if (str.indexOf("0") >= 0) {
result.innerHTML = "Number cannot consist 0";
} else
result.innerHTML = reverse(str)
}
btn.addEventListener("click", handleClick);
window.onload = function() {
var btn = document.getElementById("btn");
function reverse(str) {
if (str.length > 1)
return reverse(str.substring(1)) + str.charAt(0)
else
return str
}
function handleClick() {
var str = document.getElementById("input").value;
var result = document.getElementById("result");
if (str.indexOf("0") >=0) {
result.innerHTML = "Number cannot consist 0";
}
else
result.innerHTML = reverse(str)
}
btn.addEventListener("click", handleClick);
}
<input id="input" type="text">
<div id="result"></div>
<button id="btn">Reverse</button>