Ruby on Rails, Low Pro et JQuery (via JRails)

J’utilise JRails avec Ruby on Rails pour pouvoir utiliser simplement jQuery, car je le connais mieux. J’essaie également d’utiliser Low Pro pour soumettre certains de mes formulaires à distance.

Je rencontre actuellement un problème intéressant qui me laisse perplexe. J’ai ajouté les éléments suivants à mon fichier application.js et je sais que ceux-ci fonctionnent correctement car la réponse est renvoyée (à l’aide de Firebug dans Firefox):

 $.ajaxSetup({ dataType: "script" }); $(function() { $('a.remote').attach(Remote.Link); $('form.remote').attach(Remote.Form); }); 

Tout ce que je dois faire est d’append class="remote" à mes liens et mes formulaires et tout fonctionne parfaitement. La partie dataType: "script" s’assure qu’il effectue un eval() sur le texte de réponse renvoyé afin qu’il puisse mettre à jour la page correctement.

J’ai donc un lien simple qui crée un nouvel envoi. Dans mon fichier new.js.rjs , j’ai les éléments suivants:

 page.insert_html :bottom, '#shipments_table', :partial => 'test', :locals => { :shipment => @shipment } 

Si je remplace ceci par page.visual_effect :fade, '#shipments_table' il le fait comme prévu. Si mon fichier _test.html.erb est assez simple, il fonctionne également. Le problème est lorsque je tente d’append un

à mon partiel. Différents problèmes se posent en fonction de l’emplacement des balises

. Par exemple, cela

   Some Text   

et ça

 
Some Text

faire absolument rien apparaître. Ce

 
Some Text

fera apparaître du Some Text , mais il perdra toute ma mise en forme. Et ça

  Some Text  

fonctionne exactement ce dont j’ai besoin (visuellement). Cependant, l’inconvénient évident à cela est que je ne peux pas mettre mes entrées de formulaire dans les colonnes du tableau, ce qui rend fondamentalement tout le processus inutile. Je peux probablement contourner ce problème en les plaçant simplement tous sur une même ligne dans un

ou quelque chose de similaire, mais je préférerais que tout soit aligné.

Toute idée sur la façon de résoudre ce problème serait grandement appréciée 🙂

ne doit être placé que dans le

ou envelopper le

:

 

Si vous allez utiliser des tables, vous devrez faire ce que Tom a dit et envelopper l’élément table avec l’élément formulaire, ou le placer à l’intérieur du ou des éléments td.

Sinon, vous pouvez aussi abandonner les tableaux pour utiliser des éléments et utiliser l’élément label:

  

http://www.cssdrive.com/index.php/examples/exampleitem/tableless_forms/

Il est probable que les éléments tr ne s’attendent tout simplement pas à être des enfants et que le navigateur s’embrouille. Cela signifie que si vous placez la balise table dans la balise de formulaire, cela devrait résoudre le problème. Si vous ne pouvez pas faire cela parce qu’il y a d’autres formes disséminées, essayez plutôt de l’imbriquer dans les éléments td .

Dans les deux derniers exemples, le formulaire et la table sont des frères et soeurs et non des parents / enfants. Par conséquent, toute transition effectuée sur l’un des deux n’affectera pas l’autre comme vous le souhaitez.

Si cela ne fonctionne toujours pas, c’est peut-être parce que les éléments de formulaire sont traités dans le stream de documents. Essayez d’emballer le tout dans une div et d’appliquer la transition à cela.