Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将jQuery Datepicker连接到RubyonRails表单?_Jquery_Ruby On Rails_Jquery Ui_Jquery Ui Datepicker - Fatal编程技术网

如何将jQuery Datepicker连接到RubyonRails表单?

如何将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

我试图使用jQuery Datepicker在我的RubyonRails表单中设置一个日期字段,但我不知道该怎么做。有人能给我指出正确的方向吗?

如果使用Rails 3.0+,除了包含jQuery和jQuery UI之外,您不需要做任何事情,因为jQuery是默认的JavaScript框架

如果使用早于3.0的Rails或使用Prototype(或其他),则需要在模式中使用jQuery。确保在原型(您的另一个框架)加载后使用类似以下内容包括jQuery:

<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", ->