2012-08-08 6 views
1

J'ai un jsFiddle pour montrer mon problème (et vous permettre de me redresser).JavaScript if() instruction n'évaluant pas comme prévu

Je vérifie simplement les valeurs de deux zones de texte d'entrée et d'alerter l'utilisateur si le prix maximum est inférieur au prix minimum, mais ils évaluent à rebours! J'ai si (maxValue < minValue)... mais il l'évalue comme si l'opérateur est "est plus grand que".

Que manque-t-je?!?

<form id="search" action="search.php" method="post"> 

    <label id="lblPriceMin" for="txtPriceMin">Minimum Price</label> 
    <input type="text" id="txtPriceMin" name="priceMin"></input> 
    <br /> 
    <br /> 

    <label id="lblPriceMax" for="txtPriceMax">Maximum Price</label> 
    <input type="text" id="txtPriceMax" name="priceMax"></input> 
    <br /> 
    <br /> 

    <input type="reset" id="reset" name="reset" value="Clear Form" /> 
</form> 

Voici les js,

$('#txtPriceMax').focusout(function() { 

    var minValue = $('input#txtPriceMin').val(); 
    var maxValue = $('input#txtPriceMax').val(); 

    //alert ('minValue: ' + minValue + ', maxValue: ' + maxValue); 

    if (maxValue < minValue) { 
     alert ('The maximum value (' + maxValue + ') must be greater than the minimum value (' + minValue + ')!'); 
    } 
}); 
+0

double possible [Résultat inattendu de "supérieur à" la comparaison des valeurs à partir d'une entrée de texte] (http://stackoverflow.com/questions/8475846/unexpected-result-from-greater-than-compari fils-de-valeurs-d'-une-entrée-de-texte) –

Répondre

8

Utilisez parseFloat()

jsFiddle Example

if (parseFloat(maxValue) < parseFloat(minValue)) 
+1

Ah! Donc, je comparais les cordes! Merci, Gabe! – marky

+0

@eventide Vous pariez, content que je puisse vous aider. – Gabe

Questions connexes