如果存在,我需要在输入'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();
});
有人可以帮忙吗?
答案 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
我不知道如何让它完美运作。