1

私は2つのテキストボックスを持っていますが、それは次のように検証しようとしています

var max = $("#txtMaximumMark").val()
var min = $("#txtMinimumMark").val();

var valid = max > min;

最小値として10、最大値として100を指定すると、指定された値が有効であることが示されますが、最小値として40、最大値として100を指定すると、有効値はfalseを返します。ここで何が起こっているのか、なぜfalseを返すのか、誰か助けてくれますかここ...

4

4 に答える 4

3

キャストできる2つの数値を数値と比較する

max = parseInt(max);
min = parseInt(min);
于 2012-05-05T06:10:47.323 に答える
2

比較しているのでstrings。を使用.val()すると文字列が返されるため、それらを比較すると、文字列として比較されます。

文字列では、4は1よりも大きいため、40は100よりも大きくなります(たとえば、よりaも高くなりbaaaます)。

正しく比較するには、を使用parseIntして文字列を整数にキャストします。

var valid = parseInt( max, 10 ) > parseInt( min, 10 );
于 2012-05-05T06:09:09.343 に答える
1

文字列の最小および最大インスタンスの場合は40>100。

于 2012-05-05T06:10:54.397 に答える
1

文字列は整数ではありません。最初に値を解析します。

var valid = parseInt( max, 10 ) > parseInt( min, 10 );

「40」は「100」より大きいです。しかし、これらが整数にキャストされると、それはもはや当てはまりません。

于 2012-05-05T06:07:56.013 に答える