Jquery datapicker在rails中的默认值

jquery datapicker in rails default value

本文关键字:默认值 rails datapicker Jquery      更新时间:2023-09-26

我需要在输入'日期'值中给出默认值,如果存在或时间。

<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();
});

有人能帮忙吗?

如果你的模型需要一直有这个日期属性的默认值,而不仅仅是在这个js日期拾取器中,那么我建议一个更好的解决方案是覆盖该属性的getter方法。

假设您的属性命名为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

然而,如果你真的只想给JS提供一个默认值,在你的JS中尝试这样做:

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

这样做的一种方法是,为了不将初始化从资产中取出,您只需提供ready的值。让我们假设您从控制器发送或不发送@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>

在我的控制器我有: 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

我不知道怎样才能使它完美。