Jquery-ui Datepicker 未显示在 Rails 视图中,出现错误 Uncaught TypeError: $(...).datepicker is not a function

Posted

技术标签:

【中文标题】Jquery-ui Datepicker 未显示在 Rails 视图中,出现错误 Uncaught TypeError: $(...).datepicker is not a function【英文标题】:Jquery-ui Datepicker not showing in rails view, got error Uncaught TypeError: $(...).datepicker is not a function 【发布时间】:2020-10-02 13:15:22 【问题描述】:

来自 jquery-ui 的 Datepicker 没有出现在我的视图中。

应用程序.js

require('jquery');
require("jquery-ui/ui/widgets/datepicker");

环境.js

const webpack = require('webpack')
environment.plugins.prepend('Provide',
new webpack.ProvidePlugin(
$: 'jquery/src/jquery',
jQuery: 'jquery/src/jquery',
Popper: ['popper.js', 'default']
)
)

environment.toWebpackConfig().merge(
resolve: 
alias: 
'jquery': 'jquery/src/jquery'


);

在我看来

<script>
  $(function() 
    $('#reservation_start_date').datepicker(
      dateFormat: 'dd-mm-yy' );
      $('#reservation_end_date').datepicker(
        dateFormat: 'dd-mm-yy' );
  );

</script>

Chrome 控制台

jQuery.Deferred exception: $(...).datepicker is not a function TypeError: $(...).datepicker is not a function
Uncaught TypeError: $(...).datepicker is not a function

感谢大家的帮助!

解决了这样做: 我们必须将 jQuery 暴露给 window 对象:

packs/application.js

import JQuery from 'jquery';
window.$ = window.JQuery = JQuery;

【问题讨论】:

【参考方案1】:

yarn add jquery-ui-dist 然后在 alias 方法中添加 'jquery-ui': 'jquery-ui-dist/jquery-ui.js'

正确配置您的environment.js$jQuery 应该是 jquery 而不是 jquery 的路径。请参阅以下更改。 application.js 中不需要 require('jquery');

new webpack.ProvidePlugin(
$: "jquery",
jQuery: "jquery",
Popper: ["popper.js", "default"]
)

environment.toWebpackConfig().merge(
resolve: 
alias: 
'jquery': 'jquery/src/jquery',
'jquery-ui': 'jquery-ui-dist/jquery-ui.js'


);

【讨论】:

谢谢你!但看起来我与 jquery 有某种冲突。我尝试的每个日期时间脚本,jqueri-.ui,flatpicker,引导日期时间都遇到同样的错误 再次感谢。所以我解决了这个问题,只需将 jquery 暴露给窗口对象,在 #packs/application.js import JQuery from 'jquery'; window.$ = window.JQuery = JQuery;

以上是关于Jquery-ui Datepicker 未显示在 Rails 视图中,出现错误 Uncaught TypeError: $(...).datepicker is not a function的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 验证和 jquery-ui datepicker

在 jquery-ui datepicker 中的“今天”按钮上添加事件侦听器

jquery-ui datepicker插件在页面第二次点击时无效的问题

Laravel 5.5 中的 Datepicker 使用 Jquery-ui 或 Bootstrap

如何在 jquery-ui datepicker 中禁用动画?

设置mindate和maxdate后,jquery datepicker未禁用