Archive for the ‘ Javascript ’ Category

Validation d’un champ décimal avec virgule ou point sous JQuery

Si vous suivez mon compte twitter vous avez peut être vu passer un petit #WTF sur un problème que j’ai rencontré dernièrement avec JQuery et la validation de formulaire:

JQuery avec son plugin JQuery Validator permet, en autre chose,  de vérifier si un champ d’un formulaire est bien un nombre, si il n’est pas trop petit, ni trop grand, etc …

Mais c’est là qu’il y a un Hic ! La validation sur les nombres fonctionne tant que vous ne saisissez pas un nombre avec ….. UNE VIRGULE !

Et oui … Il semble qu’un bug (ou une régression ?)  existe dans la version 1.8.1 du Plugin JQuery Validator à ce sujet.

La solution que je vous propose et, qui est une adaptation de la solution donnée sur ce blog, est de surcharger les méthodes de validation.

Pour ce faire, créer un fichier JS que vous appellerez jquery.validate.fixes.js, et garnissez le de ce code :

/*
* Fix JQuery Validation issue 188
* https://github.com/jzaefferer/jquery-validation/issues/188
*/
$.validator.methods.range = function (value, element, param) {
	return this.optional(element) || (safeStringToFloat(value) >= param[0] && globalizedValue <= param[1]);
}

$.validator.methods.min = function (value, element, param) {
	return this.optional(element) || safeStringToFloat(value) >= param;
}

$.validator.methods.max = function (value, element, param) {
	return this.optional(element) || safeStringToFloat(value) <= param;
}

safeStringToFloat = function (value){
	return parseFloat(value.replace(",", "."));
}

$.validator.methods.number = function (value, element) {
	return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
}

Il ne vous reste plus qu’a l’appeler dans votre page :

<script type="text/javascript" src="jquery.validate.fixes.js" />

Pour la petite explication la solution consiste à ajouter ‘,’ dans le regex qui valide le format de nombre (ligne 21) et  ajouter une fonction de conversion qui permet de convertir une chaîne de caractère en float même avec une ‘,’ (ligne 17). L’avantage de cette solution c’est qu’elle patch l’anomalie de JQuery et vous permettras de garder ce fixe même  quand vous mettrez à jour JQuery et/ou Jquery validate.

Widget Flex & Air

Pour mon premier article, je vous parlerais d’un petit widget que j’ai développé afin de faciliter la recherche en développement Flex. L’idée m’est venue un jour que j’étais en stage, et que j’en avais un peu assez de devoir à chaque fois que je voulais faire une nouvelle recherche sur Flex, devoir aller sur la documentation Flex qui assez longue à charger ….
Comme il n’existait pas encore de widget pour faciliter cela j’ai pris un petit moment pour faire un widget UWA, afin de pouvoir l’intégrer à ma page d’accueil Netvibes :

Celui-ci est simple et sans prétention : il vous permet rapidement et simplement de lancer une recherche directement sur le site d’Adobe concernant le Framework Flex, j’ai joint aussi quelques liens bien utiles :

  • Adobe Flex 3 Help : Documentation officielle Flex sur la quelle la recherche s’effectue.
  • LiveDocs : Ou AsDoc
  • Adobe Learning Ressources for Flex 3 : Le cours de démarrage pour les débutants en Flex.
  • Adobe Flex Ressources : Ressources diverses concernant Flex.
  • Adobe AIR Ressources : Ressources diverses concernant Air.
  • Flex 3 Component Explorer : Toujours pratique pour se rappeler comment utiliser rapidement un composant.
  • Flex 3 Style Explorer : Très utile pour avoir un aperçu rapide des modifications de CSS sur un composant.

Grâce à l’UWA le widget est normalement utilisable sous tous les tableaux de bord, mais l’ayant déjà testé, il ne fonctionne pas sous Windows, mais passe très bien sous iGoogle.

Si vous avez idées d’améliorations du widget, n’hésiter pas ;) .

Lien du widget :http://mb-blog.fr/widget/uwa_widget.html

Cordialement,
Mathieu