JavaScriptの数値の比較が「より大きい」が機能しないのはなぜですか?以下の例は、ミニナンバーがマキシより小さい場合でもtrueを返します。JavaScriptが最大数を超える最小値を比較しない
ミニとマキシはフォーム入力値です。この例では、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);
}
"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を比較する前に、miniとmaxiを整数に変換してみましょう。 – Karl