爲什麼JavaScript中的數字值的「大於」比較不起作用?即使迷你號碼小於最大號碼,下面的示例也會保持返回正確。JavaScript不比較大於最大數值的最小值
mini和maxi是表單輸入值。這個例子使用jQuery來獲取值,但很容易被剝離。
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500
if(mini.valueOf() > maxi.valueOf()) { //also used: mini > maxi
alert('test'); //alerts "test" even when mini is less than maxi
$('form#filterPrice input.min').val(maxi); //should switch values if mini > maxi
$('form#filterPrice input.max').val(mini);
}
更換 「迷你> MAXI」 與 「Math.max(迷你,馬克西)==迷你」 工作正常。因此,下面做工作:
var mini = $('form#filterPrice input.min').val(); //eg. 500
var maxi = $('form#filterPrice input.max').val(); //eg. 1500
if(Math.max(mini, maxi) == mini) {
alert('test');
$('form#filterPrice input.min').val(maxi);
$('form#filterPrice input.max').val(mini);
}
Javascript可能會將mini和maxi視爲字符串,只是將它們進行詞彙比較。在這種情況下'500'大於'1500'。 嘗試在比較之前將mini和maxi轉換爲整數。 – Karl 2009-08-12 14:58:21