-1

ユーザーが新しいプロジェクトを作成し、後でそれらを検索できるアプリがあります。プロジェクトを作成する際のオプションの 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"});
});

しかし、スクリプトは実行されません。私はレールとJavaScriptが初めてなので、どんな助けでも大歓迎です。前もって感謝します。

更新:なぜ私の質問がクローズされたのかわかりません。それは非常に簡単です:

ユーザーが開始日より前の終了日を入力しようとしたときにフラグを立てるには、エラーが必要です。どうやってやるの??

4

2 に答える 2

2

i did not find a suitable solution when i was working with my app(needed something similar), however i just used datepicker to specify a range that a user can pick dates like this:

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

this allows users to only select dates between minDate and maxDate(the rest of the dates are greyed out). Check this out http://jqueryui.com/datepicker/#min-max .Hope it helps

于 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 に答える