-1

我有一个应用程序,允许用户创建新项目,并在以后搜索它们。他们在创建项目时拥有的选项之一是为他们提供开始和结束日期。目前,所有代码都可以正常创建和搜索日期,但我现在想限制用户可以输入的日期。

当用户尝试输入开始日期之前的结束日期时,我需要标记一个错误。当用户创建项目时,它真的更多。到目前为止,这是我的代码=>

应用程序.js

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require jquery.ui.all
//= require_tree .

$(function() {
  $("#project_start_date").datepicker({dateFormat: 'dd-mm-yy'});
});
$(function() {
  $("#project_end_date").datepicker({dateFormat: 'dd-mm-yy'});
});
jQuery(function(){
jQuery('#start_date_A').datepicker({dateFormat: "dd-mm-yy"});
});
jQuery(function(){

jQuery('#start_date_B').datepicker({dateFormat: "dd-mm-yy"});
});

新视图:

<div class="start_date" STYLE="text-align: left;">
    <b>Start Date:</b>
    <%= f.text_field :start_date, :class => 'datepicker', :style => 'width: 80px;' %>
  </div> 


<div class="end_date" STYLE="text-align: left;">
    <b>End Date:</b>
    <%= f.text_field :end_date, :class => 'datepicker', :style => 'width: 80px;' %>
  </div> 

搜索视图:

Start dates between

<%=  text_field_tag :start_date_A, params[:start_date_A], :style => 'width: 80px;' %>


-

<%=  text_field_tag :start_date_B, params[:start_date_B], :style => 'width: 80px;' %></br>

我在 application.js 文件中尝试了以下示例以使其正常工作:

$(function() {
$("#project_start_date,#project_end_date").datepicker({dateFormat: 'dd-mm-yy'});
});

jQuery(function(){
jQuery('#start_date_A,#start_date_B').datepicker({dateFormat: "dd-mm-yy"});
});

但随后脚本没有运行。我是 Rails 和 javascript 的新手,因此非常感谢任何帮助。提前致谢。

更新:不知道为什么我的问题被投票关闭。这很简单:

当用户尝试输入开始日期之前的结束日期时,我需要标记一个错误。我怎样才能做到这一点??

4

2 回答 2

2

我在使用我的应用程序时没有找到合适的解决方案(需要类似的东西),但是我只是使用 datepicker 来指定用户可以选择日期的范围,如下所示:

$( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });

这允许用户只选择 minDate 和 maxDate 之间的日期(其余日期显示为灰色)。看看这个http://jqueryui.com/datepicker/#min-max。希望它有帮助

于 2012-10-19T12:16:07.933 回答
0

我把我的验证

validate :validate_end_date_after_start_date

def validate_end_date_before_start_date
  if project_end_date && project_start_date
    errors.add(:project_end_date, "Project must begin before it ends") if project_end_date < project_start_date
  end
end

不用担心即时 Jquery 验证

于 2012-10-19T19:59:41.493 回答