2017-03-29 11 views
0

so das ist mein erster Versuch mit Ruby herum fiedeln und ich versuche, einen Blog-Typ des Eintrags zu tun, wo ich standardmäßig das aktuelle Datum gegeben und dann kann ich Text in ein anderes Textfeld eingeben.jQuery datepicker nicht einreichen

Ich habe einen Datepicker erstellt und das Datum zur Auswahl des aktuellen Datums eingestellt. Es zeigt automatisch das aktuelle Datum an und wenn ich auf das Feld klicke, kann ich ein anderes auswählen, aber wenn ich den Beitrag abschicke, wird das Datum nicht verarbeitet.

Wenn ich ein Textfeld erstellen und das Datum manuell eingeben, funktioniert es.

Das ist mein _form.html.erb

<%= form_for(gym) do |f| %> 
    <% if gym.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(gym.errors.count, "error") %> prohibited this gym from being saved:</h2> 


     <ul> 
     <% gym.errors.full_messages.each do |message| %> 
     <li><%= message %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

<!-- <div class="field", align="center"> 
    <%= f.label :Date %><br> 
    <%= f.text_field :Date %> 
    </div> --> 

    <div class="input", align="center"> 
    <%= f.label :Date %> 
<input id="Date" type="text" size="10" > 
<script> 
    $(function() { 
    $("#Date").datepicker({dateFormat: 'dd.mm.yy', defaultDate: new Date}); 
    $("#Date").datepicker("setDate", new Date); 
    }); 
    </script> 

</div> 

    <div class="field", align="center"> 
    <%= f.label :Workout %><br> 
    <%= f.text_field :Workout, size:"30x10" %> 
    </div> 

    <div class="actions", align="center"> 
    <%= f.submit "Submit a Workout" %> 
    </div> 
<% end %> 

Dieses

mein new.html.erb ist
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 
<body> 
<h1>New Workout</h1> 
<p id ="new_one" ><%= render 'form', gym: @gym %> 
<p id ="new_two", align="center"><%= link_to 'Back', gyms_path, {:style => 'color:#FFF'} %> 
</body> 

Und das ist die index.html.erb, die die Daten anzeigt.

<p id="notice"><%= notice %></p> 

<body bgcolor="#D6EAF8"> 

</body> 
<h1 align="center">Workouts</h1> 

<table cellpadding="10", align="center" > 
    <thead> 
    <tr > 
     <th>Date</th> 
     <th>Workout</th> 
     <th colspan="3"></th> 
    </tr> 
    </thead> 

    <tbody bgcolor= "#EBDEF0", align="center"> 
    <% @gyms.each do |gym| %> 
     <tr align="center"> 
     <td><%= gym.Date %></td> 
     <td><%= gym.Workout %></td> 
     <td><%= link_to 'Show', gym %></td> 
     <td><%= link_to 'Edit', edit_gym_path(gym) %></td> 
     <td><%= link_to 'Destroy', gym, method: :delete, data: { confirm: 'Are you sure?'} %></td> 
     </tr> 
    <% end %> 
    </tbody> 
</table> 

<br> 

<p id ="new_work", align="center"><%= link_to 'New Workout', new_gym_path, {:style => 'color:#FFF'}%> 

Antwort

1

Wenn Sie Formular Helfer verwenden text_field zu erstellen, Schienen wird ein Textfeld Eingabe erstellen mit id ist model_name _ field_name

Beispiel: Wenn ich eine Form für Benutzer

<%= form_for(user) do |f| %> 
    <%= f.text_field :name %> 
<% end %> 

Schienen werden ein Textfeld erstellen:

<input type="text" id="user_name" name="user[name]"> 

Wenn Add Datepicker:

$("#user_name").datepicker({dateFormat: 'dd.mm.yy', defaultDate: new Date}) 

Durch eine andere Art und Weise, Sie können auch ein Textfeld Eingabe mit benutzerdefinierten ID erstellen:

<%= f.text_field :name, id: "my_input_id" %> 

Und

$("#my_input_id").datepicker({dateFormat: 'dd.mm.yy', defaultDate: new Date}) 

Hoffe, dass ich helfen kann.

+0

Vielen Dank, ich war in der Lage, mein Problem mit Ihren Anweisungen zu beheben. – Kuulme