如何将jQuery Datepicker连接到RubyonRails表单?
我试图使用jQuery Datepicker在我的RubyonRails表单中设置一个日期字段,但我不知道该怎么做。有人能给我指出正确的方向吗?如果使用Rails 3.0+,除了包含jQuery和jQuery UI之外,您不需要做任何事情,因为jQuery是默认的JavaScript框架 如果使用早于3.0的Rails或使用Prototype(或其他),则需要在模式中使用jQuery。确保在原型(您的另一个框架)加载后使用类似以下内容包括jQuery:如何将jQuery Datepicker连接到RubyonRails表单?,jquery,ruby-on-rails,jquery-ui,jquery-ui-datepicker,Jquery,Ruby On Rails,Jquery Ui,Jquery Ui Datepicker,我试图使用jQuery Datepicker在我的RubyonRails表单中设置一个日期字段,但我不知道该怎么做。有人能给我指出正确的方向吗?如果使用Rails 3.0+,除了包含jQuery和jQuery UI之外,您不需要做任何事情,因为jQuery是默认的JavaScript框架 如果使用早于3.0的Rails或使用Prototype(或其他),则需要在模式中使用jQuery。确保在原型(您的另一个框架)加载后使用类似以下内容包括jQuery: <script type="text
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jqueryui.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($) {
// here the $ function is jQuery's because it's an argument
// to the ready handler
$('#dateField').datepicker();
});
// here the $ function is Prototype's
</script>
jQuery.noConflict();
jQuery(文档).ready(函数($){
//这里$function是jQuery的,因为它是一个参数
//给准备好的处理者
$(“#dateField”).datepicker();
});
//这里的$function是Prototype的
Ryan Bates对这一切有一个非常好的解释:
(旧版可免费观看)
(修订版您需要订阅才能观看)我构建了一个gem来处理此问题:
希望它能帮助其他人。我使用了albertopq提到的albertopq的jquery\u日期选择器,它可以处理正则形式、嵌套属性等。它让我的工作变得非常简单。jquery\u datepicker还正确地将选项传递给datepicker必要的javascript调用 下面是我的一个嵌套表单的示例:
<%= f.datepicker 'availability', :minDate => 0, :maxDate => "+8Y", :tab_index => autotab %>
0,:maxDate=>“+8Y”,:tab_index=>autotab%>
minDate和maxDate被传递给datepicker,tab_索引被放入文本字段html中。(autotab只是我的表单助手,用于推进tab+1…对我来说比硬编码更好)。现在,我推荐jquery ui rails gem高于其他答案,原因很简单,您可以只包含datepicker资产,而不包含整个jquery ui库
可能有点晚了,但我使用了一个简单的gem: 档案:
gem'jqueryuirails'
Application.js:
/=requirejqueryui
Application.css
*=需要jquery ui
然后:
Bundle安装
资料来源:
Rails 5.x的更新 第一步。安装jqueryuirailsgem
# gemfile
gem 'jquery-ui-rails'
# app/assets/javascripts/application.js
//= require jquery-ui/widgets/datepicker
# app/assets/stylesheets/application.css
*= require jquery-ui/datepicker
第二步。假设您有一个名为Event的资源,其中包含一个名为:start的日期或日期时间字段,那么在表单中,将:start字段设置为文本字段
# app/views/events/_form.html.erb
<%= f.label :start, 'Start Date' %>
<%= f.text_field :start %>
对于Rails4,除了JavaScript(或CoffeeScript)文件中的第一行之外,所有内容都是相同的。在Rails 4中启用TurboLink时加载JavaScript的包装器是:
$(document).on "page:change", ->
如果启用了资产管道,这似乎不起作用,因为除非禁用管道,否则无法按照插件要求的方式安装jquery。我已经更新了gem。它现在应该可以和管道一起工作了。将是当前更好的选择,因为您可以选择要包含的模块。您的gem似乎包含了整个ui库。爱你的计时器扩展!这仅适用于3.0之前的Rails版本;jQuery是新的默认设置。谢谢,通过这个链接,我解决了两个问题。我希望我有时间观看所有rails的演员阵容。如果我们想添加一个混乱的日期月-日-年,那就太棒了。这一集有一个更新版本,请参阅修订版:你能为rails 4添加一个示例吗?我正在将一个应用程序从3更新到4,并且
jquery\u datepicker
停止工作,因此我将使用您的解决方案。如果我在rails 4中使用turbolinks gem,这个解决方案对我来说应该仍然有效,对吗?DJTripleThreat-对于rails 4,除了使用turbolinks执行的JavaScript(或者在本例中是CoffeeScript)包装器外,其他一切都是一样的。我已经编辑了上面的答案来添加更改。我现在正在处理这个确切的问题,并使用脚手架设置了一个简单的虚拟应用程序-运行rails 5.0.3-我得到了一个ActionController例外,它找不到datpicker小部件…找到了解决问题的信息-可能你不能再添加特定的小部件了-如果您只需要整个ui,这个示例就可以工作
$(document).on "page:change", ->