【发布时间】:2015-04-07 18:04:46
【问题描述】:
问题是我有 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)任何帮助都会很大赞赏。
这是我的 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,它有日期选择器
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;'
在我的入门模型中,我有一种方法可以获取 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
【问题讨论】:
-
您可能需要检查 moment.js 以便更轻松地进行日期操作,如果您使用日期实例,setDate 和 get Date 将用于将日期向上移动。您的问题可能与日期选择器有关。
-
申请.js:@NikosM。
标签: javascript jquery ruby-on-rails ruby ruby-on-rails-4