所以我花了一个小时的时间试图弄清楚为什么当我点击按钮时什么也没有发生……通常情况下,用户应输入一个数字,如果是平方数,则会将所有数字相加。但是我的代码什么也没做!请帮帮我!
function analyzeNumber() {
var input = document.getElementById("user_input").value;
alert("User value" + input);
document.getElementById("answer_display").innerHTML = input;
if ((validateNumber(input)) == true) {
if (Math.sqrt(input) % 1 === 0) {
var total = sumDigits(input);
return document.getElementById("answer_display").innerHTML = total;
} else {
return document.getElementById("answer_display").innerHTML = " ";
alert("It is not a square number!");
}
}
}
function validateNumber(b) {
if ((typeof.b == "number") && (b > -1)) {
return true;
} else {
return false;
alert("Please enter numeric value!");
}
}
function sumDigits(a) {
var str = input.toString();
var sum = 0;
for (i = 0; i < num.length; i++) {
sum += parseInt(str.charAt(i));
}
return sum;
}
<head>
<title> SOEN 287 Assignment 2 </title>
<script type="text/javascript" src="Q1.js">
</script>
</head>
<body action="" method="post">
<fieldset>
<h1> Question 1</h1>
<form action="" id="sqrForm">
<p>
<label>Please enter a number: <input type = "text" id = "user_input" /></label>
<input id="btton" type="submit" value="Try it!" onclick="return analyzeNumber()" />
</p>
<p>
<label id="answer"> Answer: </label>
<label id="answer_display"> </label>
</p>
</form>
</fieldset>
</body>
发布于 2018-07-22 00:41:00
给未来一点提示:不要使用alert
进行调试,在浏览器中使用console.log()
或console.info()
和开发工具(按F12即可打开)。
您需要将typeof.b
更改为typeof b
或typeof(b)
。
function analyzeNumber() {
var input = document.getElementById("user_input").value;
alert("User value" + input);
document.getElementById("answer_display").innerHTML = input;
if ((validateNumber(input)) == true) {
if (Math.sqrt(input) % 1 === 0) {
var total = sumDigits(input);
return document.getElementById("answer_display").innerHTML = total;
} else {
return document.getElementById("answer_display").innerHTML = " ";
alert("It is not a square number!");
}
}
}
function validateNumber(b) {
if ((typeof b == "number") && (b > -1)) {
return true;
} else {
return false;
alert("Please enter numeric value!");
}
}
function sumDigits(a) {
var str = input.toString();
var sum = 0;
for (i = 0; i < num.length; i++) {
sum += parseInt(str.charAt(i));
}
return sum;
}
<head>
<title> SOEN 287 Assignment 2 </title>
<script type="text/javascript" src="Q1.js">
</script>
</head>
<body action="" method="post">
<fieldset>
<h1> Question 1</h1>
<form action="" id="sqrForm">
<p>
<label>Please enter a number: <input type = "text" id = "user_input" /></label>
<input id="btton" type="submit" value="Try it!" onclick="return analyzeNumber()" />
</p>
<p>
<label id="answer"> Answer: </label>
<label id="answer_display"> </label>
</p>
</form>
</fieldset>
</body>
需要注意的是:
当您单击该按钮以触发脚本时,form
将提交,并且您的输出将“消失”。要防止出现这种情况,请将input
的type
从submit
更改为button
:
function analyzeNumber() {
var input = document.getElementById("user_input").value;
alert("User value" + input);
document.getElementById("answer_display").innerHTML = input;
if ((validateNumber(input)) == true) {
if (Math.sqrt(input) % 1 === 0) {
var total = sumDigits(input);
return document.getElementById("answer_display").innerHTML = total;
} else {
return document.getElementById("answer_display").innerHTML = " ";
alert("It is not a square number!");
}
}
}
function validateNumber(b) {
if ((typeof b == "number") && (b > -1)) {
return true;
} else {
return false;
alert("Please enter numeric value!");
}
}
function sumDigits(a) {
var str = input.toString();
var sum = 0;
for (i = 0; i < num.length; i++) {
sum += parseInt(str.charAt(i));
}
return sum;
}
<head>
<title> SOEN 287 Assignment 2 </title>
<script type="text/javascript" src="Q1.js">
</script>
</head>
<body action="" method="post">
<fieldset>
<h1> Question 1</h1>
<form action="" id="sqrForm">
<p>
<label>Please enter a number: <input type = "text" id = "user_input" /></label>
<input id="btton" type="button" value="Try it!" onclick="return analyzeNumber()" />
</p>
<p>
<label id="answer"> Answer: </label>
<label id="answer_display"> </label>
</p>
</form>
</fieldset>
</body>
https://stackoverflow.com/questions/51458015
复制相似问题