【问题标题】:Select 2 jQuery doesn't work in laravel 6选择 2 jQuery 在 laravel 6 中不起作用
【发布时间】:2020-02-17 20:57:29
【问题描述】:

所以我正在尝试创建一个表单,用户可以在其中将一本书添加到数据库中。 我想使用 Select2 中的选择栏,它允许用户搜索选择元素。 我遵循了有关如何使这项工作的教程,但不知何故,它似​​乎对我不起作用。 关于我做错了什么有什么想法吗?

相关代码:

@extends('layout')


@section('title')
<title>Add new book</title>
@section('stylesheets')
<link href="css/select2.min.css" rel="stylesheet" />
<script src="js/select2.min.js"></script>
@endsection
@section('content')
<style>
    .uper {
        margin-top: 40px;
    }
</style>
<div class="card uper">
    <div class="card-header">
        Neues Buch hinzufügen
    </div>
    <div class="card-body">
        <form method="post" action="{{ route('books.store') }}">
            <div class="form-group">
                @csrf

                ...

            <div class="form-group">
                <label for="authors">Author(en):</label>
                <select name="authors[]" multiple class="form-control select2-multi <!-- @error('authors') is-invalid @enderror -->">
                    @foreach ($authors as $author)
                    <option value="{{ $author->id }}">{{ $author->name }}</option>
                    @endforeach
                </select>
                @error('authors')
                <div class="alert alert-danger">{{ $message }}</div>
                @enderror
            </div>

...

 </form>
    </div>
</div>
@endsection
<script type="text/javascript">
$('.select2-multi').select2();
</script>

【问题讨论】:

  • 您是否尝试过使用选择元素的 id 而不是类$('#MySelect').select2();
  • 是的,这也不起作用
  • 控制台有错误吗?
  • 是,加载资源失败:服务器响应状态为 404(未找到) select2.min.css:1 加载资源失败:服务器响应状态为 404(未找到) ) create:16 Uncaught ReferenceError: $ is not defined at create:16 select2.min.css:1 无法加载资源:服务器响应状态为 404(未找到)

标签: jquery jquery-select2 laravel-6


【解决方案1】:

按原样查看代码,您的脚本标签在您的部分之外,因此不会在文件内被读取,实际上将其移动到任何部分中,但在这种情况下,stylesheets 会更合适。

@section('stylesheets')
<link href="css/select2.min.css" rel="stylesheet" />
<script src="js/select2.min.js"></script>
<script type="text/javascript">
    $('.select2-multi').select2();
</script>
@endsection

虽然我们正在处理它,但您的 title 部分没有 endsection

【讨论】:

  • 感谢您的评论!我试过这样做,不幸的是它仍然不起作用。
  • @mekol 你的控制台在说什么?
  • 加载资源失败:服务器响应状态为 404(未找到) select2.min.css:1 加载资源失败:服务器响应状态为 404(未找到) create :16 Uncaught ReferenceError: $ is not defined at create:16 select2.min.css:1 加载资源失败:服务器响应状态为 404(未找到)
  • @mekol 您的 css 和 js 存储在哪里?在您的公共文件夹中?尝试用资产替换您的 href 和 src,如下所示:{{ asset('css/select2.min.css') }}{{ asset('js/select2.min.js') }}
  • 两条错误消息消失了,但我仍然收到 create:3 Uncaught ReferenceError: $ is not defined at create:3 (anonymous) @ create:3 select2.min.js:2 Uncaught ReferenceError : jQuery 没有在 select2.min.js:2 at select2.min.js:2 中定义
猜你喜欢
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2013-02-18
  • 2013-03-08
  • 2011-05-29
相关资源
最近更新 更多