0

私は奇妙な振る舞いをしました:

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

4

2 に答える 2

8

入力の値は文字列です。JavaScript が と 文字列を比較する方法は次の11とおり100です。

  • 1 と 1 の比較: 等しい、次の文字に続く
  • 1 は 0 と比較して: 1 の方が高いため、11よりも高くなり100ます。

数値に変換してみてください:

var min = parseInt(document.getElementById(x).value,10);
var max = parseInt(document.getElementById(y).value,10);
于 2013-04-27T14:17:46.570 に答える
3

parseInt整数値を比較するために使用する必要があります

 var minValue=parseInt(min, 10);
 var maxValue=parseInt(max, 10);
于 2013-04-27T14:17:39.660 に答える