window.onload = start;
function start() {
document.getElementById("kalk").onclick = find;
find(1, 9999);
}
function find(min, max) {
var factor = document.getElementById("tall").value;
var factor2 = document.getElementById("tall2").value;
var x = factor * factor2;
document.getElementById("utskrift").innerHTML = x;
if (x >= min && x <= max) {
document.getElementById("msg").innerHTML = "Number is in interval."
} else {
document.getElementById("msg").innerHTML = "Number is not in interval."
}
}
<h2>Gang to tall</h2>
T1 <input type="number" id="tall" /> T2 <input type="number" id="tall2" />
<button id="kalk">Finn tall i intervall</button> Sum: <span id="utskrift"></span>
<p id="msg"></p>
所以通过阅读这段代码.. 我想做的是有两个输入,我将输入的数字相乘。在我的“Find()”参数中,我有两个参数表示数字应该在 1-9999 之间。在我的“函数查找”中,我将这些参数称为最小值和最大值。在代码的下方,我询问输出是否介于这些数字之间,介于最小值和最大值之间,给出“数字在间隔内”。问题是,即使数字在这些参数中,我也会得到我的 else 语句。有没有办法解决这个问题或在参数中加入一个输入感受?
谢谢
最佳答案
您将函数 find
直接附加到点击事件监听器。该函数需要两个参数 min
和 max
:
function find(min, max)
但是当点击发生时,作为事件监听器,它只接收一个参数,即事件对象。因此 min
将是一个事件对象,而 max
将是 undefined
而你的 if
语句不会工作。您可以通过将 find
中的 min
和 max
记录到控制台来检查这一点。
将函数 find
调用包装在另一个函数中并将后者作为事件监听器附加:
document.getElementById("kalk").onclick = function(event) { // the event listener function recieves the event object as the only parameter (not that argument event here is not necessary, I just added it for explanation)
find(1, 90000); // when this function get executed (when a click happens) then call find with proper parameters
}
关于javascript - 我的 if 语句给出了错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47490961/