Ajouter du code Javascript sur les contrôles RAILS

Sous ce titre abscons se cache une dure réalité :
Comment faire quand on a scaffoldé - (du verbe Scaffolder : je scaffolde, tu scaffoldes...
Exemple concret : Micheline a beaucoup scaffoldé avec Jean René cet après midi, elle avait les joues toutes rouges ) - une magnifique classe, généré ses somptueux écrans d'administration et qu'on veut ajouter des événements javascript sur les contrôles auto générés (comme le text_field ou la text_area par exemple ) ?

En réalité, Rails, qui vous aime bien et vous trouve fort sympathique, et peut être beau de profil, a la solution. Comme souvent d'ailleurs, me souffle dans l'oreille mon ami Adrien (Veux tu bien arrêter, gredin ?)

Il suffit donc d'ajouter l'événement directement dans la description du contrôle ; par exemple :

<%= f.text_area :terrain, :cols =>8, :rows => 20, :onkeyup => "ModifyTerrain(this.value);RedrawCanvas();" %>

Ce qui aura pour effet de déclencher mes fonctions Javascript ModifyTerrain puis RedrawCanvas lors de la saisie d'un caractère dans la zone de texte text_area.

Du coup, il est tout à fait possible d'enrichir le Scaffold avec des appels Javascript sans avoir à écrire du code globuleux et difficile à maintenir (ce qui n'est pas le cas dans tous les langages...)

Finalement, comme dit Adrien, Rails, c'est bien ;-)
Previous
Next Post »