Warum funktioniert "größer als" Vergleiche für Zahlenwerte in JavaScript nicht. Das folgende Beispiel wird immer wahr, auch wenn die Mini-Nummer kleiner als der Maxi ist.JavaScript vergleicht nicht Minimum größer als maximale Anzahl Werte
Mini und Maxi sind Formulareingabewerte. In diesem Beispiel wird jQuery verwendet, um die Werte abzurufen, es kann jedoch problemlos entfernt werden.
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);
}
austauschen "mini> maxi" mit "Math.max (Mini, Maxi) == mini" funktioniert gut. So funktioniert die folgenden Arbeiten:
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 kann Mini und Maxi als Strings behandeln und nur lexikalisch vergleichen. In diesem Fall ist '500' größer als '1500'. Versuchen Sie, Mini und Maxi in Ganzzahlen zu konvertieren, bevor Sie sie vergleichen. – Karl