在Ruby on Rails网站中使用jquery-ui-rails日期拾取器.未定义日期选择器方法



我在用Ruby on Rails编写网站时遇到了这个问题。

bundle show
* jquery-ui-rails (4.0.1)

在app/资产/javascript/application.js

//= require jquery.ui.datepicker

在app/资产/样式表/application.css

*= require jquery.ui.datepicker

在app/views/布局/application.html.erb

<%= stylesheet_link_tag    "application", :media => "all" %>
<%= javascript_include_tag "application" %>

然后在somepage。html中。动词,I got

<script type="text/javascript">
$(function(){
    $("#startdate").datepicker();
    $("#enddate").datepicker();
});
</script>

运行时,Chrome显示

Uncaught TypeError: Object [object Object] has no method 'datepicker'

我认为资源没有被正确引用是原因,因为问题可以通过添加以下到app/views/layouts/application.html.erb

来解决
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />

这些可以在http://jqueryui.com/datepicker/上找到。我看到了没有这些代码的日期摘取器的演示。但我不明白为什么它在我身上不起作用。有人有什么建议吗?除了上面提到的,还有什么要补充的吗?

可能是以下原因之一:

1)你在你的application.html.erb中包含多个javascript文件,当它们放在一起时会导致混乱。

2)你正在使用一些其他的javascript文件,也使用$就像jquery使用。有两个相同的符号是获得no method 'datepicker'为jquery的可能原因。

另一种选择是将$的所有出现替换为jQuery

就像下面这样把jquery代码包装在一个块中:

jQuery(function($){
    //all jQuery code which uses $ should be here.
});

最新更新