我跟着Railscast by RyanB将jQuery date_picker添加到表单中,并且现在卡住了几天。根据指示,只有三个变化:
将date_select字段更改为文本以容纳jQuery。我在_form.html.erb中进行了更改:
<%= f.text_field:born_in%>
将以下语句添加到application.js:
$(function() {
$("#spec_born_in").datepicker();
});
对我来说棘手的问题是我使用的是FullCalendar(JavaScript插件)。出于某种原因,如果我向applicaiton.js添加任何内容,FullCalendar将不会显示。因此,我需要将函数定义放在一个名为application_jquery_helper.js的文件中,并在加载FullCalendar的js文件后加载它。
我已经完成了所有这些,但在我的表单中,文本字段只是一个文本字段,并且jQuery datepicker不会显示。
我想知道我做错了什么阻止了jQuery datepicker出现。我能想到的唯一原因是我在application.html.erb中包含js文件的顺序,但我不知道如何修复它。
以下是我在application.html.erb中的重要内容:
<head>
<%= csrf_meta_tag %>
<%= render 'layouts/stylesheets'%>
<%= javascript_include_tag :defaults %>
<!-- <%=stylesheet_link_tag'blueprint/screen',:media=>'screen'%>
<%=stylesheet_link_tag'blueprint/print',:media=>'print'%> -->
<%= stylesheet_link_tag 'formtastic', 'formtastic_changes', :cache => "base" %>
<%= stylesheet_link_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css", "application" %>
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js",
"http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js", "application" %>
<%= stylesheet_link_tag "fullcalendar.css" %>
<%= stylesheet_link_tag "application.css" %>
<%= javascript_include_tag "jquery.js" %>
<%= javascript_include_tag "jquery.rest.js" %>
<%= javascript_include_tag "rails.js" %>
<%= javascript_include_tag "application.js" %>
<!-- these are needed for the calendar. -->
<%= javascript_include_tag "jquery-ui-1.8.11.custom.min.js" %>
<%= javascript_include_tag "fullcalendar.js" %>
<%= javascript_include_tag "calendar.js" %>
<%= javascript_include_tag "application_jquery_helper.js" %>
非常感谢您的评论或建议!
答案 0 :(得分:0)
我相信当DOM没有完全加载时你正试图访问一个元素。
要纠正此问题:
$(document).ready(function(ev) {
$("#spec_born_in").datepicker();
});
如果您需要“未来”支持,也可以查看jQuery's .live()
functionality。