Вопрос: У меня есть вид simple_form, что пользователи могут выбрать дату leave_start и leave_end. Я хочу получить даты между этим диапазоном, а примером будет leave_start = 4/1/15 leave_end = 4/5/15, а сроки между ними будут (4/1/15, 4/2/15, 4/3/15, 4/4/15, 4/5/15). У меня есть функция щелчка, но когда я нажимаю текстовое поле gdates, ничего не появляется, и я хочу, чтобы даты отображались в этом текстовом поле (4/1/15, 4/2/15, 4/3/15, 4/4/15, 4/5/15). Любая помощь была бы весьма признательна.Не могу понять, почему мой javascript ничего не делает
Это мой app.js
// JavaScript include manifest for the non-angular pages
//
//= require jquery
//= require jquery_ujs
//= require jquery.ui.all
//= require best_in_place
//= require bootstrap
//= require jquery.ui.datepicker
//= require entry
$(document).ready(function() {
$('#gdates').click(function() {
var start = $('#leave_start').datepicker("getDate"),
end = $('#leave_end').datepicker("getDate"),
currentDate = new Date(start),
between = []
;
while (currentDate <= end) {
between.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
$('#gdate').val();
});
});
Это мой entry.js, что имеет DatePicker
jQuery ->
$('#leave_start').datepicker({minDate: 0, beforeShowDay: $.datepicker.noWeekends });
$('#leave_end').datepicker({minDate: 0, beforeShowDay: $.datepicker.noWeekends });
Мой взгляд
=simple_form_for @entry, :url => url_for(:controller => 'entry', :action => 'create'), :method => :post do |f|
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
%th.lt Leave Start:
%td.lt= f.text_field :leave_start, :label => false, :id => 'leave_start', :input_html => {:value => ''}
%td.lt= f.error :leave_start, :class => 'er'
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
%th.lt Leave End:
%td.lt= f.text_field :leave_end, :label => false, :id => 'leave_end', :input_html => {:value => ''}
%td.lt= f.error :leave_end, :class => 'er'
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
%th.lt Dates:
%td.lt= f.text_field :all_dates, :label => false, :id => 'gdates', :input_html => {:value => ''}
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
= f.button :submit, "Submit", :class => 'btn btn-primary', :style => 'margin-left:50px;'
Extra в моей модели входа у меня есть метод, чтобы получить количество дней между leave_start и leave_end ... Что я не думаю, что это вызывает проблему.
запись модель
def range_days
self.range_days = only_weekdays(leave_start.to_date..(leave_end.to_date)).to_i
end
private
#works with l_s to l_e to calc amount of days minus weekends...
def only_weekdays(range)
range.select { |d| (1..5).include?(d.wday) }.size
end
end
вы можете проверить мо ment.js для упрощения обработки даты, setDate и get Date будут работать для перемещения дней на один, если вы работаете с экземплярами дат. Вероятно, ваша проблема связана с выбором даты. –
application.js: @NikosM. – Snowman88