32 votes

Comment connecter jQuery Datepicker à mon formulaire Ruby on Rails?

J'essaie d'utiliser le jQuery Datepicker pour définir un champ de date dans mon formulaire Ruby on Rails, mais je ne peux pas savoir comment le faire. Quelqu'un peut me diriger dans la bonne direction?

17voto

albertopq Points 181

J'ai construit un bijou pour gérer cela:

https://github.com/albertopq/jquery_datepicker

J'espère que cela aide quelqu'un d'autre.

16voto

Christian Bankester Points 393

Ryan Bates a une très bonne explication de tout cela:

http://railscasts.com/episodes/213-calendars

5voto

Damien Roche Points 4664

Pour l'instant, je recommanderais jquery-ui-rails gem au-dessus des autres réponses pour la simple raison que vous ne pouvez inclure que les actifs datepicker sans l'intégralité de la bibliothèque jquery ui!

https://github.com/joliss/jquery-ui-rails

4voto

Kevin from MBioEX Points 146

J'ai utilisé albertopq de jquery_datepicker que albertopq mentionne et il travaille avec des formes régulières, imbriqués les attributs, etc. Cela rend les choses très facile pour moi. jquery_datepicker aussi correctement passes options de datepicker du code javascript nécessaire d'appels.

Voici un exemple d'une de mes des formulaires imbriqués:

<%= f.datepicker 'availability', :minDate => 0, :maxDate => "+8Y", :tab_index => autotab %>

minDate et maxDate sont passés à datepicker et tab_index est mis dans le champ de texte html. (autotab est juste mon helper form à l'avance l'onglet + 1...il vaut mieux pour moi que de le coder en dur).

1voto

tvanfosson Points 268301

Si vous utilisez Rails 3.0+, vous ne devriez pas avoir besoin de faire autre chose que d'inclure jQuery et jQuery UI car jQuery est le framework JavaScript par défaut.

Si vous utilisez Rails avant 3.0 ou si vous utilisez Prototype (ou autre chose), vous devrez utiliser jQuery en mode noConflict . Assurez-vous d'inclure jQuery après le chargement du prototype (votre autre infrastructure) en utilisant quelque chose de similaire à:

 <script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jqueryui.js"></script>
<script type="text/javascript">
  jQuery.noConflict();
  jQuery(document).ready(function($) {
    // here the $ function is jQuery's because it's an argument
    // to the ready handler
    $('#dateField').datepicker();
  });
  // here the $ function is Prototype's
</script>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X