未捕获的TypeError:jQuery(...)。select2不是Laravel 5.3的函数

时间:2016-10-24 08:00:21

标签: jquery laravel-5.3 jquery-select2 laravel-blade

我正在使用Select2并看到下面的错误。这是我的档案:

@extends('layouts.app')
<link rel="stylesheet" type="text/css" href="{{URL::asset('css/select2.min.css')}}">

    @section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Dashboard</div>

                    <div class="panel-body">
                         <select name="primaryLanguage" id="primaryLanguage">
                          <option value="AL">Alabama</option>
                          <option value="WY">Wyoming</option>
                        </select>
                    </div>
                </div>
            </div>
        </div>
    </div>
    @endsection
    <script type="text/javascript" src="{{URL::asset('js/jquery-1.10.2.js')}}"></script>
    <script type="text/javascript" src="{{URL::asset('js/select2.full.min.js')}}"></script>
    <script type="text/javascript">
        jQuery(document).ready(function(){
            jQuery("primaryLanguage").select2();
        });
    </script>

我不断得到的错误:

home:7 Uncaught TypeError: jQuery(...).select2 is not a function(anonymous function) @ home:7fire @ jquery-1.10.2.js:3101self.fireWith @ jquery-1.10.2.js:3213jQuery.extend.ready @ jquery-1.10.2.js:3425completed @ jquery-1.10.2.js:3455
jquery-1.9.0.js:1 '//@ sourceURL' and '//@ sourceMappingURL' are deprecated, please use '//# sourceURL=' and '//# sourceMappingURL=' instead.

4 个答案:

答案 0 :(得分:1)

我刚遇到了你自己的问题,我解决了这个问题: 把这些

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="/js/select2.min.js"></script>

在你的主布局文件中(在我的例子中是app.blade.php) 然后根据这些脚本放 @yield('scripts') 然后在您想要调用插件的刀片文件中,在

之后
@section('content') 
...
@endsection
@section('scripts')
 <!-- Here you call the select2 js plugin -->
@endsection

PS:你必须把css文件&amp;公共文件夹下的js文件(public / css&amp; public / js) 在这里,我正在使用Laravel Collective作为表格 我希望我帮助

答案 1 :(得分:0)

尝试修改此内容,

<script type="text/javascript">
   jQuery(document).ready(function(){
       jQuery("#primaryLanguage").select2();
   });
</script>

在您的代码中,您正在引用名称为primaryLanguage的代码。但实际上它是id。因此,您缺少#来指定具有特定&#39; id&#39;的tag

答案 2 :(得分:0)

在您用作primaryLanguage的代码id中,现在更改一个小代码:

<script type="text/javascript">
  jQuery(document).ready(function(){
    jQuery("#primaryLanguage").select2();
  });
</script>

答案 3 :(得分:0)

只需从主布局中删除此代码

<script src="{{ asset('js/app.js') }}" defer></script>