2010-12-22 10 views
0

Der aktuelle date_select-Formularhelfer in Rails erstellt drei Pulldown-Menüs zum Auswählen von Monat, Datum und Jahr für ein Datum. Gibt es einen Weg, stattdessen einen Pulldown mit einer Liste von Daten zu haben?Rails date_select als einzelner Pulldown anstelle von drei?

Zum Beispiel eine Liste der nächsten 30 Tage von "1. Januar 2011" bis "30. Januar 2011"?

+1

Ich denke, würden Sie schreiben müssen:

<%= f.text_field :some_date %> # => presume that element id is some_date_id 

Sie ein Dropdown-Kalender, um es wie diese hinzufügen Sie besitzen Helfer .. sollte nicht zu schwierig sein. Viel Glück :-) – Mischa

Antwort

2

Während keine Auswahl/Pulldown-Kontrolle, eine alternative Option ist die jQuery datepicker. dass verwenden, können Sie dies tun:

Ihr Datumsfeld:

<script type="text/javascript"> 
    $(function() { 
    $("#some_date_id").datepicker(); 
    }); 
</script> 
+2

jQuery ist der Weg dahin. Ein Vorschlag zum Code, den Zabba geschrieben hat: Weisen Sie dem Datumsfeld eine bestimmte Klasse zu (zB: class => "useDatePicker" und auf document.onReady, machen Sie ein $ (". UseDatePicker"). Datepicker(). Ich habe das gefunden Dies ist eine gute Möglichkeit, Datumslistener über die gesamte App zuzuweisen, ohne sich um IDs kümmern zu müssen – MunkiPhD

0

Anstatt einen date_select_tag zu schreiben, verwenden Sie einen select_tag und geben Sie ihm ein Array von Daten.

select_tag "invoice_date", options_from_collection_for_select(@array_of_dates,:first,:first) 

Nicht sicher, wie Sie das Formular verwenden. Wenn Sie dieses Snippet posten, kann eine spezifischere und korrektere Antwort bereitgestellt werden.

Wenn Sie date_select benötigen, um anders zu arbeiten, müssen Sie den Helfer außer Kraft setzen und Ihren eigenen rollen. Wenn Sie nur eine bestimmte Funktionalität in Ihrer App wünschen und nicht daran interessiert sind, Rails selbst zu ändern, wählen Sie die Option select_tag.

Verwandte Themen