Я использую самоцвет начальной загрузки начальной загрузки https://github.com/Nerian/bootstrap-datepicker-rails
В этом геме я могу использовать simple_form для создания формы, имеющей два поля ввода с именами start_date и end_date, например:
<% simple_form_for @user do |f| %>
<%= f.input :start_date, :as => :date_time_picker, wrapper_html: {class: 'start-date'} %>
<%= f.input :end_date, :as => :date_time_picker, wrapper_html: {class: 'end-date'} %>
<% end %>
Я последовал их примеру и построил пользовательский ввод даты и времени следующим образом
class DateTimePickerInput < SimpleForm::Inputs::Base
def input(wrapper_options)
template.content_tag(:div, class: 'input-group date date-picker') do
template.concat @builder.text_field(attribute_name, merge_wrapper_options(input_html_options, wrapper_options))
template.concat span_remove
template.concat span_table
end
end
def input_html_options
super.merge({class: 'form-control', readonly: true})
end
def span_remove
template.content_tag(:span, class: 'input-group-addon') do
template.concat icon_remove
end
end
def span_table
template.content_tag(:span, class: 'input-group-addon') do
template.concat icon_table
end
end
def icon_remove
"<i class='glyphicon glyphicon-remove'></i>".html_safe
end
def icon_table
"<i class='glyphicon glyphicon-th'></i>".html_safe
end
end
и инициализировал с помощью javascript поля ввода datetimepicker следующим образом
$('.date-picker').datepicker({
format: 'yyyy-mm-dd',
autoclose: true,
startDate: today
})
Моя проблема сейчас заключается в том, что яхочу установить, что выбранная дата start_date
является минимальной датой для end_date
, но я не могу использовать событие changeDate
, поскольку оба моих поля ввода используют один и тот же класс date-picker
.Как я могу определить эти два поля ввода с одинаковыми классами, которые я затем могу использовать для инициализации DatePicker для обоих в javascript и выполнения ожидаемой логики для end_date
Любая помощь приветствуется