Laravel 7 Bootstrap Datepicker:Uncaught TypeError:$...datepicker不是一个函数

问题描述

我想在laravel 7应用程序的表单中添加一个引导datepicker字段,但是我总是收到以下错误消息:Uncaught TypeError:$(...)。datepicker不是一个函数

我至少阅读了十几篇有关如何解决此问题的文章,在我看来,所有尝试都没有运气。

我的感觉是我的laravel应用程序(也许在app.js中?)已经加载了其中一个脚本,或者可能加载了同一脚本的不同版本(也许是jQuery?)。 datetimepicker,这会导致问题。不幸的是,对于Laravel来说是新手,我不确定该如何解决。如果您有任何建议,请参见下面的一些代码示例,并让我知道。非常感谢!

应用布局文件标题

<!doctype html>
<html lang="{{ str_replace('_','-',app()->getLocale()) }}">
<head>
    <Meta charset="utf-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1">

    <!-- CSRF Token -->
    <Meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name','Laravel') }}</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>
    
    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.css" rel="stylesheet">
    
    
</head>

查看文件

@extends('layouts.app')



@section('content')

<form action="" method="post" action="/tour/{id}">

<!-- CROSS Site Request Forgery Protection -->
@csrf


<div class="form-group">
    <label>Date</label><br>
    <input id="datepicker" type="text" />
</div>


</form>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<script>
$( "#datepicker" ).datepicker({
format: "mm/dd/yy",});
</script>

解决方法

您正在代码中启动datepicker,但是在标头中,您正在加载完全不同的插件datetimepicker