gpt4 book ai didi

JavaScript 无法将 input.min、input.max、input.value 识别为整数

转载 作者:行者123 更新时间:2023-11-28 17:40:26 29 4
gpt4 key购买 nike

我正在一个网站上工作,如果在提交表单之前数字不在最小值和最大值之间,我希望数字输入能够自行更正。我的代码如下:

HTML:

<input type="number" min="0" max="10" step="0.01" onblur="CorrectOverUnder(this)" value="0">

JavaScript:

function CorrectOverUnder(sender){

if(sender.value < sender.min){

sender.value = sender.min;

}else if(sender.value > sender.max){

sender.value = sender.max;
}
}

它可以很好地纠正任何超出范围的内容,但它也可以将 2 到 10 之间的任何内容纠正为最大值(即 10)。我尝试通过先检查是否有超过最大值的数字来颠倒案例的顺序,但结果是相同的。我该如何解决这个问题?

编辑:我最终将 JavaScript 更改为:

function CorrectOverUnder(sender){

if(parseInt(sender.value) < parseInt(sender.min)){

sender.value = sender.min;

}else if(parseInt(sender.value) > parseInt(sender.max)){

sender.value = sender.max;
}
}

一切都好,还是这在某种程度上仍然是错误的?

最佳答案

在比较它们之前,您需要将值转换为数字,因为当它们是字符串时,JS 会按字母顺序比较它们,这意味着 "2"> "10"

function CorrectOverUnder(sender)
{
let value = Number(sender.value);
let min = Number(sender.min);
let max = Number(sender.max);

if(value < min){
sender.value = min;
}else if(value > max){
sender.value = sender.max;
}
}
<input type="number" min="0" max="10" step="0.01" onblur="CorrectOverUnder(this)" value="0">

关于JavaScript 无法将 input.min、input.max、input.value 识别为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48066019/

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