JavaScript nicht vergleichen minimum, das größer als die maximale Anzahl Werte

Warum ist "größer als" - Vergleich für die Anzahl der Werte in JavaScript nicht funktioniert. Das Beispiel unten hält "true" zurückgeben, auch wenn die mini-Anzahl kleiner als die maxi.

mini-und maxi-form-input-Werte. Dieses Beispiel ist mit jQuery, um die Werte, konnte aber leicht abgezogen 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 );
}

Ersetzen "mini" > "maxi" mit "Math.max(mini, maxi) == mini" funktioniert gut. So, der folgende Code funktioniert:

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 die Behandlung von mini-und maxi als strings, und nur lexikalisch verglichen werden. In dem Fall '500' größer als '1500'. Versuchen, die Umwandlung von mini-und maxi-Ganzzahlen, bevor Sie miteinander verglichen werden.
InformationsquelleAutor Andres | 2009-08-12
Schreibe einen Kommentar