javascript - <输入类型 = 数字> 中的上级和下级

标签 javascript html

我有一个奇怪的行为:

JavaScript:

function Compare(x, y) {
    var min = document.getElementById(x).value
    var max = document.getElementById(y).value
    if (min > max) {
        alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!")
        document.formacha.min.focus()
    }

}

<input type="number" id="max" min="0"/>
<input type="number" id="min" min="0" onblur="Compare('min', 'max')">

所以:

如果

max = 1000000000000000
min = 10

没关系,但如果我改变

min = 11

然后

alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!")

被解雇了!

就像浏览器认为min > max!

最佳答案

输入的值是字符串。以下是 JavaScript 如何将 11100 作为字符串进行比较:

  • 1 与 1 比较:相等,继续下一个字符
  • 1 与 0 相比:1 更高,因此 11 高于 100

尝试转换为数字:

var min = parseInt(document.getElementById(x).value,10);
var max = parseInt(document.getElementById(y).value,10);

关于javascript - <输入类型 = 数字> 中的上级和下级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16253113/

相关文章:

jquery - 如何每2秒显示不同的div?

javascript - JQuery:隐藏除一个图像之外的所有图像,从第一个开始并滚动它

javascript - Vulcanize 产生重复的脚本

javascript - 上下文绑定(bind)语法

javascript - 为什么 Access-Control-Allow-Origin 在 Codeigniter Rest-Server 中不起作用

javascript - 单击时显示元素,不活动时再次隐藏

javascript - Backbone.js 中的命名空间

javascript - 为什么 javascript 在浏览器控制台中显示 (66) [empty × 65, {...}]?

php - 使用带有 SUM 函数的 MYSQL 生成月度报告

jquery - 在选择器之前使用 css