2010-08-05 11 views
0

Je cherche à retourner vrai si l'utilisateur a entré 4 dans le champ de saisie.besoin de retourner vrai ou faux basé sur si la valeur dans le champ de texte est un nombre spécifique

function validateAddition() { 
    if($("#validateAddition").val() == 4) { 
    return true; 
    } else { 
    return false; 
    } 
} 

<input value="" 
class="validate[required,onlyNumber,length[0,1]funcCall[validateAddition]] text-input" 
type="text" id="validateAddition" name="validateAddition" /> 

a ajouté dans le fichier de la langue anglaise:

"validateAddition":{ 
    "nname":"validateAddition", 
    "alertText":"* Your math is off, try again."} 

Cela devrait être bien, laissez-moi savoir ce que vous pensez est faux.

+0

Avez-vous essayé? – Sarfraz

+0

oui j'ai. Il ignore la valeur du nombre. – Brad

+0

@Brad: Voir ma réponse s'il vous plaît et laissez-moi savoir si c'est ce que vous cherchez. – Sarfraz

Répondre

1

http://www.w3schools.com/jsref/jsref_parseInt.asp

return (parseInt($('#validateAddition').val()) == 4) 

EDIT: MooGoo est correct, je me suis trompé en ce qui concerne mon explication.

Cependant, l'idée d'utiliser + val n'est probablement pas la meilleure. Bien que la méthode ci-dessus fonctionne comme vous avez besoin d'une bien meilleure solution serait la suivante:

if(($('#validateAddition').val()-0) == 4) 

La raison pour laquelle nous voulons -0 par opposition à 0 est tout simplement parce que si elle est une chaîne et que vous souhaitez effectuer Au cas où il y aurait des opérations supplémentaires, vous n'aurez plus la chaîne d'origine.

+0

Mais c'est * pas * la raison. En Javascript, '" 4 "== 4 &&" 4 "== 4 &&" 00004 "== 4' Il n'y a aucune raison de taper manuellement cast, et même alors, parseInt est probablement le pire moyen de le faire. Si vous le devez, utilisez simplement '+ val'. – MooGoo

0

Si vous voulez permettre à d'autres personnages aussi bien et retourne vrai que si le texte du champ de saisie contient 4, vous devez faire comme ceci:

if($("#validateAddition").val().indexOf('4') != -1) { 
0

Il ferait sence de comparer la valeur à une chaîne, puisque la valeur est une chaîne. Cela vous permet d'utiliser des égales strictes en évitant les conversions automatiques inutiles. Vous pouvez également simplifier la fonction.

function validateAddition() { 
    return $("#validateAddition").val() === "4"; 
} 
0

Vous pouvez mettre votre validation dans le fichier de langue, en regardant quelque chose comme ça

 

"validateAddition": { 
    "regex": /[0-3]|[5-9]/,//something that matches on all numbers but four 
    "alertText": "* Your math is off, try again." 
}, 

 
Questions connexes