#javascript #ruby-on-rails #coffeescript
#javascript #ruby-on-rails #coffeescript
Вопрос:
Как мне объединить день и время в переменную «start_time» (и «end_time») перед отправкой? JS?
<%= 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')
Комментарии:
1. Насколько мне известно, либо вы должны сделать это в своем javascript, либо вам нужно сбросить эти значения на стороне сервера с помощью функций даты 🙂
2. Итак, как мне взять все, что есть в выпадающих списках, добавить это в новый параметр и отправить его контроллеру. Я полагаю, что было бы легко разобрать его в контроллере, но, похоже, я не могу предотвратить отправку.
3. Для будущих вопросов вам следует пояснить, что
doesn't work
это значит. Чего вы ожидаете? Что на самом деле произошло?
Ответ №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 не тестировалась — используйте рабочую скрипку в качестве руководства.)