11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je suis actuellement en train de travailler sur un formulaire sur lequel je voudrais que l'utilisateur entre un nombre entier dans l'un des champs, mais je n'arrive pas à effectuer cette verification avec le javascript (elle sera naturellement faite par php ensuite, c'est simplement dans le but d'éviter à l'utilisateur d'avoir à revenir en arrière si il a mal rempli)
Déjà je voulais vérifier si l'entrée était bien un nombre, alors j'ai essayé ça :
if(typeof(document.forms.promesse.montant.value) != "number")
	{ 
	error = true;
	error_log += "Ce n'est pas un nombre"; 
	error_log += document.forms.promesse.montant.value;
	} 

Mais ça me renvoie toujours une erreur car l'entrée de l'utilisateur est toujours prise comme string que ce soit un nombre ou pas.
Je pense que je m'y prend mal avec "typeof" c'est la première fois que j'essaie de l'utiliser, si quelqu'un à une idée d'où peut venir le problème?
Par ailleurs si vous avez des idées moins tordues que moi pour vérifier si c'est bien un nombre entier n'hésitez pas à me le dire Smiley lol
Merci d'avance.
Modifié par lina (10 Sep 2008 - 10:33)
Salut,

en général je fais ça :
function isNumber(str) {
	if (isNaN(str)) {
		return false;
	}
	return true;
}
mais peut-être que ça ne gère pas tous les cas...

A+
ah c'est super! Ca résoud une énorme partie de mon problème *_*! Il me reste plus qu'à trouver le moyen de détecter si l'utilisateur a utilisé un point dans son nombre Smiley murf
Merci beaucoup Smiley biggrin
Alors peut-être ça :
function isNumber(str) {
	str = str.replace(/^\s+|\s+$/g, '');
	var value = parseInt(str, 10);
	return String(value) === str;
}
(adapté de "Bonnes pratiques Ajax" de C. Porteneuve)

Et si tu considères que ce sujet est [Résolu] merci de l'indiquer en éditant ton premier post et en modifiant le titre. Smiley cligne