【问题标题】:jQuery datepicker not submittingjQuery datepicker 未提交
【发布时间】:2017-03-29 10:37:59
【问题描述】:

所以这是我第一次尝试摆弄 ruby​​,我正在尝试做一个博客类型的条目,默认情况下给我当前日期,然后我可以在另一个文本字段中输入文本。

我创建了一个日期选择器,并设置日期以选择当前日期。它会自动显示当前日期,当点击该字段时,我可以选择另一个,但是在提交帖子时,日期没有被处理。

如果我创建一个文本字段并手动输入日期,它就可以工作。

这是我的 _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 %>

这是我的 new.html.erb

   <%= 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>

这是显示数据的 index.html.erb。

<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'}%>

【问题讨论】:

    标签: jquery ruby-on-rails jquery-ui-datepicker


    【解决方案1】:

    当您使用表单助手创建 text_field 时,rails 将创建一个文本字段输入,其 id 为 model_name_field_name

    示例:当我为用户创建表单时

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

    Rails 将创建一个文本字段:

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

    添加日期选择器时:

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

    通过另一种方式,您也可以使用自定义 id 创建文本字段输入:

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

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

    希望我能帮上忙。

    【讨论】:

    • 非常感谢,我能够按照您的指示解决我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多