0

私のjavascriptは非常に奇妙な動作をしています!

HTMLファイルに入力フィールドがあります。この入力フィールドは、JavaScript によって次のように読み取られます。

var bscore = $("#bscore").val();

次に、入力が特定の入力を下回った場合にアラートを表示したい

if(bscore<"913"){
    document.getElementById("bscorealert").style.display="block";
};

これはうまくいきます。そのため、数値が 913 を超える場合は表示されません。bscore 入力フィールドの数値が 999 を超える (つまり 1000 以上) 場合、if ステートメントがトリガーされ、アラートが表示されます。

これはどのように可能ですか?

4

2 に答える 2

5

整数ではなく文字列を比較しているため、可能です。文字列の比較は辞書式"9" > "10"です。

Number(strValue)または単項演算子と比較する前に変換する必要があり+ます。

var bscore = +$("#bscore").val();    // + prefix converts to number
if (bscore < 913) ...                // no quotes around 913!
于 2013-10-23T13:25:21.627 に答える
1

アルファベット順の比較を使用する 2 つの文字列を比較しようとしています。フィールドに 9130 ~ 9999 の値を入力すると、メッセージ ボックスも表示されないことに気付くでしょう。

数値を比較するには、parseInt を実行する必要があります。

于 2013-10-23T13:27:05.297 に答える