2017-05-15 54 views
0

私はlaravel 5.4を使用しています。今私はマルチレベルで私の選択オプションを表示するためにselect2プラグインを使用しています。入力が表示されているだけで動作していないSelect2プラグインがLaravel 5.4で動作していません。

<!DOCTYPE html> 
<html lang="{{ config('app.locale') }}"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <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> 

    <!-- Styles --> 
    <link href="{{ asset('css/app.css') }}" rel="stylesheet"> 

    <!-- Scripts --> 
    <script> 
     window.Laravel = {!! json_encode([ 
      'csrfToken' => csrf_token(), 
     ]) !!}; 
    </script> 
</head> 
<body> 
    <div id="app"> 
     <nav class="navbar navbar-default navbar-static-top"> 
      <div class="container"> 
       <div class="navbar-header"> 

        <!-- Collapsed Hamburger --> 
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse"> 
         <span class="sr-only">Toggle Navigation</span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
        </button> 

       </div> 
      </div> 
     </nav> 
    @yield('content') 
    </div> 

    <!-- Scripts --> 
    <script src="{{ asset('js/app.js') }}"></script> 
</body> 
</html> 

ここに私のコードは私のapp.blade.php

@extends('layouts.app') 

@section('content') 
<html lang=""> 
<body> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-8 col-md-offset-2"> 
       <div class="panel-body"> 
        <div class="form-group"> 
         <label for="matching_star" class="col-md-4 control-label">Matching Star</label> 
         <div class="col-md-6"> 
          <select name="matching_star" class="form-control select2" id="matching-star" multiple> 
           <option value="aaa">aaa</option> 
           <option value="bbb">bbb</option>  
          </select> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</body> 

<script type="text/javascript" src="{{ URL::asset('https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js') }}"></script> 
<link rel="stylesheet" href="{{ URL::asset('https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css') }}" /> 
<script type="text/javascript" src="{{ URL::asset('https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js') }}"></script> 

<script type="text/javascript"> 
    $('#matching-star').select2(); 
</script> 

</html> 
@endsection 

です。入力をクリックしても何も示唆していません。 最初の行@extends( 'layouts.app')を削除してもうまくいきます。私はAppレイアウトからのApp.jsがselect2プラグインをオーバーライドすると思う。アプリケーションレイアウトを削除せずにマルチセレクションを実装するにはどうすればよいですか。前もって感謝します。

+0

layouts.appのコンテンツを貼り付けることはできますか? – Alex

+0

私はAppレイアウトを追加しました。問題はapp.jsファイルからです。 – balaraman

+0

まあ、そのファイルも含めてみると、誰かがそこにいるのを誰かが推測できるとは思えません。 – Alex

答えて

0

この

<script> 
$(document).ready(function() { 
    $('#matching-star').select2(); 
}); 
</script> 
+0

追加後、私はこの "TypeError:$(...)。select2は関数ではありません" – balaraman

0

1のような準備ができて文書にあなたのジャバスクリプトをラップ)あなたの選択のjQuery OR jQuery.minが正しくロードされていませんか確認してください。

2)他の賢明なjQueryはあなたのページで2回あります。

わかりませんが、確認してください。私はそれが役に立つと思います。ビューから、次の

0

削除して、再度確認してください。

<script type="text/javascript" src="{{ URL::asset('https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js') }}"></script> 

を私の知る限りはLaravelのデフォルトapp.jsを知っているように、デフォルトではjQueryを含んでいます。

関連する問題