在我们的rails 3.1.0应用程序中,ajax用于加载带有jquery日期选择器的视图,以获取return_date。application.js中return_date的js代码为:
// for AJAX
$(function() {
$("#test_sample_return_date").live('click', function() {
$(this).datepicker({dateFormat: 'yy-mm-dd', showOn:'focus' }).focus();
});
});
有了这个实现,当视图以ajax方式加载时,就会加载日期选择器。但是,return_date中始终将"0001/1/1"设置为默认值,而不是根据需要设置为空白。日期选择器的选项,如currentText、defaultDate不起作用。使用CCD_ 1。但是,只有在用户首先单击return_date字段(最初加载"0001/1/1")后,才删除value属性。
关于如何在rails-ajax中为日期选择器设置空白,有什么想法吗?非常感谢。
更新:
以下是加载return_date:的一行rails simple_form代码
<%= f.input :return_date, :label => "Return Date: ", :as => :string %>
return_date是一个日期字段。:as选项将return_date作为字符串而不是日期加载到文本框中。单击return_date框时,将启动并显示日期选择器。
您的$(this).removeAttr('value')
方法应该可以工作,但您在click函数上调用datepicker
。我会在$(document).ready()
上执行此操作。这里有一个例子:
$(document).ready(function()
{
$("#test_sample_return_date").datepicker({dateFormat: 'yy-mm-dd', showOn:'focus' }).focus().val('');
});
我只是在末尾添加了.val('')
,但您也可以这样做:
$("#test_sample_return_date").datepicker({dateFormat: 'yy-mm-dd', showOn:'focus' }).focus().removeAttr('value')
编辑:
我刚刚做了一个测试,发现.val('')
实际上并没有删除这个值。.removeAttr('value')
似乎做到了!
将showOn选项设置为"按钮"
$("#test_sample_return_date").datepicker({dateFormat: 'yy-mm-dd', showOn:'button' })