2014-06-27 53 views
0

如何在提交之前將日期和時間組合爲「start_time」變量(和「end_time」)? JS?Rails將兩個表單域合併爲一個

<%= form_for @task do |f| %> 
     <%= render 'shared/error_messages', object: f.object %> 
      <div class="time_selectors"> 
      <%= f.label :start_time %> 
      <%= f.text_field :start_time, :class => 'datepicker' %> 
      <select class="form-control time_dropdown" id="start_hour"> 
       <option>Select Date</option> 
      </select> 
      <div class="clear_both"></div> 
      <%= f.label :end_time %> 
      <%= f.text_field :end_time, :class => 'datepicker' %> 
      <select class="form-control time_dropdown" id="end_hour"> 
       <option>Select Date</option> 
      </select> 
      </div> 
      <div class="clear_both"></div> 
      </div> 
      <div class="clear_both"></div> 
      <%= f.submit "Create Task", class: "btn btn-large btn-primary" %> 
     </div> 
    <% end %> 

我把它們組合在我的任務模型中,如果可以,我寧願將它們合併。

我的JS現在不工作。我錯過了什麼?

$('#new-task').submit()-> 
    valuesToSubmit = $(this).serialize 
    console.log('test') 
    console.log(valuesToSubmit) 
    return false 
$('button').click()-> 
    console.log ('test2') 
+0

按我的知識,或者你在做這在JavaScript或者您必須在服務器端通過日期功能重置這些值:) –

+0

那麼,我該如何處理下拉列表中的任何內容,將其添加到新的參數中並將其提交給控制器。我認爲在控制器中解析它很容易,但我似乎無法阻止提交。 – Jeff

+0

對於將來的問題,你應該說明「不工作」的含義。你期望發生什麼?究竟發生了什麼? – pdoherty926

回答

1

這樣的事情呢?

$('form').on 'submit', (event) -> 
    event.preventDefault() 
    start_time = '' 
    start_time += $(@).find('input[name=start_day]').val() 
    start_time += '_' 
    start_time += $(@).find('input[name=start_hour]').val() 
    $('<input/>', {type: 'hidden', name: 'start_time', value: start_time}).appendTo($(@)) 
    @submit() 

(*的CoffeeScript的版本沒有經過測試 - 使用工作小提琴作爲指南。)

Fiddle