jquery datepicker in rails默认值

时间:2014-06-22 22:24:18

标签: javascript ruby-on-rails datepicker

如果存在,我需要在输入'date'值中给出默认值,如果不存在,我需要Time.now。

<div class="input-append date" id="datepicker" data-date="Time.now" data-date-     format="dd-mm-yyyy">
    <input size="16" type="text" value="" name="date">
    <input type="submit" style="display:none;" id="submit">
    <span class="add-on"><i class="icon-th"></i></span>
  </div>

我的js

$(document).ready(function() {
    $("#datepicker").change(function(){
        $("#submit").click();
    });
    $('#datepicker').datepicker();
});

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

如果您的模型需要始终具有此日期属性的默认值,而不仅仅是在此js datepicker中,那么我建议更好的解决方案是覆盖属性的getter方法。 / p>

假设您的属性名为start_date,并且您希望默认值为Time.now,那么这样的内容就足够了:

class SomeModel
  def start_date
    read_attribute(:start_date) || Time.now
  end
end

当然,如果您只想在特定控制器的视图中为JS提供默认值,您也可以在将数据传递给视图之前在控制器中设置默认值:

class SomeModelController < ApplicationController
  def show
    @some_model = SomeModel.find(params[:id])
    @some_model.start_date ||= Time.now
  end
end

但是,如果 REALLY 想要为JS提供默认值,请在JS中尝试这样的事情:

$(document).ready(function() {
  $('#datepicker').datepicker("setDate": new Date());
});

答案 1 :(得分:0)

这样做的一种方法是,为了不从资产中进行初始化,您只需提供准备好的值。我们假设你从控制器发送了一个@defaultdate变量:

<div class="input-append date" id="datepicker" data-date-format="dd-mm-yyyy">
    <input size="16" type="text" value="" name="date">
    <input type="submit" style="display:none;" id="submit">
    <span class="add-on"><i class="icon-th"></i></span>
</div>


<%
     date = @defaultdate || Time.now
     date = date.strftime('%Y,%m,%d')
%>


<script>
     var defaultDate = new Date(<%= date %>);
     $("#datepicker").val(defaultDate);
</script>

答案 2 :(得分:0)

在我的控制器中,我有: scope :by_date,->(date){ select{|post| post.created_at.to_date == date} } 我的班级看起来:

if signed_in?
      @post = current_user.posts.build
      if(params[:date].blank?)
        @feed_items = current_user.feed.by_date(Time.now.to_date)
      else
        @feed_items = current_user.feed.by_date(params[:date].to_date)
       end
    end

我不知道如何让它完美运作。