问题是我有两个日期选择器,一个用于leave_start,另一个用于leave_end。如果有人为将来的text_field选择“是”,我希望日期选择器只显示人员周年日之后的日期。我可能遇到的一个问题是雇员的周年纪念日将是他们被雇用的时间,因此我不确定如何只使用周年日期的月份和日期来仅显示其周年日期之后的今年的日期。
例如,我的名字是Joe Smith,我选择将来的请求为“是”,我的周年日期是02/14/12。我希望我的leave_start leave_end datepickers仅显示今年2月14日之后的日期。这可能吗?任何帮助将不胜感激!!!!
基本上我只是不希望人们选择未来的请求,并且能够在他们的周年日之前选择几天。
让我知道是否有人需要更多信息,这是我到目前为止所拥有的。任何帮助将不胜感激!!!!
以下是我的entry.js.coffee
中的日期选择器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
%td.lt= f.error :range_days, :class => 'er'
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
%th.lt Indirect Code:
%td.lt= f.input_field :indirect_id, :as => :select, :id => 'indirect_id', :label => false, :collection => ['PD', 'VAC', 'ABS'], :hint => "If you choose ABS(this is considered an unpaid absence)"
%td.lt= f.text_field :sick_day, :id => 'sick_day', :label => "This is for if you feel the need to comment on your unpaid request", :placeholder => 'Optional Comment', :input_html => {:value => ''}
%td.lt= f.error :indirect_id, :class => 'er'
%table.table.table-bordered.table-striped{:style => 'table-layout:fixed; width:100% !important;'}
%th.lt Will This Request be after your anniversary date?:
%td.lt= f.input_field :future, :as => :select, :id => 'future', :label => false, :collection => ["YES", "NO"]
%td.lt= f.error :future, :class => 'er'
%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'
%td.lt= f.text_field :range_days, :label => false, :id => 'range_days', :input_html => {:value => ''}
%td.lt= f.text_field :full_range, :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 => 'customSub'
以下是此人的周年纪念日的模型
class Empcomp < ActiveRecord::Base
establish_connection :vdev
self.table_name = 'empcomp'
belongs_to :entry
end
这是我的新入门控制器和创建
def new
@entry = Entry.new
@empaccrl = Empaccrl.where("person_id = ? and is_active = 'Y'", current_user.person_id)
@empcomp = Empcomp.where("person_id = ?", current_user.person_id)
respond_to do |format|
format.html# new.html.haml
format.xml { render :xml => @entry }
end
end
def create
params.permit!
@entry = Entry.new(params[:entry])
@entry.t_d
@entry.day_hours
@entry.current_user = current_user
@empaccrl = Empaccrl.where("person_id = ? and is_active = 'Y'", current_user.person_id)
@empcomp = Empcomp.where("person_id = ?", current_user.person_id)
# send my email
respond_to do |format|
if @entry.save
if current_user.email.nil?
format.html { redirect_to(entry_path( @entry ), :notice => 'Entry successfully created, but you will not recieve any notifications, because you email is blank!') }
format.xml { render :xml => @entry, :status => :created, :location => @entry }
else
EntryMailer.submit_for_approval(@entry).deliver
format.html { redirect_to(entry_path( @entry ), :notice => 'Entry successfully created.') }
format.xml { render :xml => @entry, :status => :created, :location => @entry }
end
else
format.html { render :action => "new" }
format.xml { render :xml => @entry.errors, :status => :unprocessable_entity }
end
end
end
这样的事情是我希望它如何工作但我无法从我的模型中获得周年纪念日。这个日期会有所不同,所以我不能把它设置为静态日期
$(document).ready(function(){
$('#future').click(function() {
var selected = $(this).val();
if (selected == 'YES') {
$('#leave_start').datepicker({minDate: '#anviersary_date', beforeShowDay: $.datepicker.noWeekends });
} else {
$('#leave_start').datepicker({minDate: 0, beforeShowDay: $.datepicker.noWeekends });
}
});
});