<输入类型=数字>中的优越和劣质

Abd*_* Pp 0 javascript html5

我有一个奇怪的行为:

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()
    }
Run Code Online (Sandbox Code Playgroud)

}

<input type="number" id="max" min="0"/>
<input type="number" id="min" min="0" onblur="Compare('min', 'max')">
Run Code Online (Sandbox Code Playgroud)

所以:

如果

max = 1000000000000000
min = 10
Run Code Online (Sandbox Code Playgroud)

没关系,但如果我改变了

min = 11
Run Code Online (Sandbox Code Playgroud)

然后

alert("la prix MINIMAL est SUPÉRIEUR au prix MAXIMAL!")
Run Code Online (Sandbox Code Playgroud)

被解雇了!

就像浏览器认为的那样min > max!

Nie*_*sol 8

输入值是字符串.以下是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);
Run Code Online (Sandbox Code Playgroud)