gpt4 book ai didi

javascript - 我的 if 语句给出了错误的输出

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:11:05 26 4
gpt4 key购买 nike

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 直接附加到点击事件监听器。该函数需要两个参数 minmax:

function find(min, max)

但是当点击发生时,作为事件监听器,它只接收一个参数,即事件对象。因此 min 将是一个事件对象,而 max 将是 undefined 而你的 if 语句不会工作。您可以通过将 find 中的 minmax 记录到控制台来检查这一点。

将函数 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com