price_from.toFixed() n'est pas une fonction
assez simple question ici, c'était avant, mais pas plus.
voilà mon code:
$('.filter-price').submit(function(e) {
var alert_message = '';
var price_from = $('.filter-price #price_from').val();
var price_to = $('.filter-price #price_to').val();
if (isNaN(price_from) || isNaN(price_to))
{
if (isNaN(price_from))
{
alert_message += "Price from must be a number, i.e. 500\n";
$('.filter-price #price_from').val('From');
}
if (isNaN(price_to))
{
alert_message += "Price to must be a number, i.e. 500\n";
$('.filter-price #price_to').val('To');
}
}
else
{
price_from = price_from.toFixed();
price_to = price_to.toFixed();
if (price_from >= price_to)
{
alert_message += "Price from must be less than price to\n";
$('.filter-price #price_from').val('From');
$('.filter-price #price_to').val('To');
}
}
if (alert_message != '')
{
e.preventDefault();
alert(alert_message);
}
});
maintenant développeur web me donne l'erreur "price_from.toFixed n'est pas une fonction" et mon javascript ne fonctionne pas.
OriginalL'auteur scarhand | 2011-12-26
Vous devez vous connecter pour publier un commentaire.
Tout d'abord 'isNaN la fonction n'est pas VRAIMENT vérifier si la chaîne de caractères représente le nombre. Par exemple isNaN('456a') renvoie la valeur vrai, mais "456a" n'est pas tout. Pour cela il vous faut une autre méthode de vérification. Je suggère d'utiliser des expressions régulières.
Ensuite, vous devez analyser la chaîne de compareing numéros ( c'est à dire price_from < price_to ).
Ici est modifiée de code on peut supposer que:
OriginalL'auteur Engineer
val
retourne une chaîne de caractères;toFixed
opère sur des nombres. Convertir votre chaîne en nombre comme ceci:Remarque: Vous êtes vérifier si la chaîne contient un nombre à l'aide de
isNaN
. Cela fonctionne parce queisNaN
ne implicite nombre de conversion avant le test. Pour utiliser le nombre méthodes, cependant, vous aurez besoin de faire cette même conversion explicitement, comme indiqué ci-dessus.Ne pas confondre le JavaScript type de l'objet avec ce qu'il représente. Une chaîne de caractères peut contenir un "nombre" dans la forme d'une chaîne et d'être encore quelques une chaîne de caractères.
C'est parce que
isNaN
fait une conversion implicite d'un certain nombre quand une chaîne de caractères. Pour le numéro d'appel de méthodes sur la chaîne, vous aurez besoin de convertir explicitement, comme je l'ai montré.Je suis encore en train "d'Erreur: price_from.toFixed n'est pas une fonction" même après le remplacer par ğ Nombre(price_from).toFixed();"
OriginalL'auteur Wayne Burkett