如何将我的日期选择器设置为仅在特定日期之后显示日期

时间:2015-04-24 12:50:08

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-4

问题是我有两个日期选择器,一个用于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 });
    }
  });
 });

1 个答案:

答案 0 :(得分:2)

这就是为什么你有minDatemaxDate

在初始化程序上:

$( ".selector" ).datepicker({
  minDate: new Date(2007, 1 - 1, 1)
});

初始化后的设置:

$( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );

您无需在此处发布所有代码。请明确点。 :)