我无法弄清楚为什么jQuery datepicker没有出现,即使我在我的应用程序上运行了jQuery。这是我做的:
我有一个包含
的Rails表单 <div id="born_in">
<%= f.text_field :born_in %><br />
</div>
我在我的application.html.erb
的头部包含了jQuery,jQuery-UI,CSS<%= stylesheet_link_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" %>
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js",
"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" %>
我也有application.js,它表明我的选择器不是nil:
alert($("#born_in").length)
返回1
我试过了:
$("#born_in").datepicker("show")
但它没有显示任何内容。 那么为什么我看不到datepicker()?这个版本的jquery-UI是否有针对datepicker的错误?如何测试我的应用程序中是否包含此功能?
谢谢。
答案 0 :(得分:0)
它是否在手前初始化?如你所说,你打电话了
$("#born_in").datepicker();
在那段代码之前的某些地方?如果没有,你不需要“show”,只需运行没有参数的方法。
答案 1 :(得分:0)
Rails决定喜欢在id中添加控制器名称的表单输入。 例如,我的控制器名称为“Testjqueryui”,在_form部分中,生成了以下内容(与您的非常相似):
<%= f.text_field :date %>
生成的HTML(运行嵌入式ruby之后)的id为:“testjqueryui_date”。
所以,我的建议是检查生成的字段的id,因为它可能有前面的控制器名称。
我把它放在application.js文件中:
$(function() {
$( "#testjqueryui_date" ).datepicker();
});
希望这有帮助!
答案 2 :(得分:-1)
您只需使用jQuery选择器查找要显示为datepickers的所有字段。一种方法是给datepicker字段一个特定的css类,如下所示:
<div id="born_in">
<%= f.text_field :born_in, :class => "date" %>
</div>
然后,在您的application.js
文件中(或您想要的位置),只需写下:
$(function() {
$('input.date').datepicker();
});
您还可以使用特定元素的id而不是css类。你知道要求。 希望这很有用。