jQuery 选择 : display multiple select fields on the same page

标签 jquery html laravel jquery-chosen

我正在使用https://harvesthq.github.io/chosen/允许用户在下拉列表中搜索值。

我在 post/create 页面上还有 2 个选项卡:链接和文本

两个选项卡具有相同的“subreddit_id”字段,该字段使用 $(selector).chosen(); 但是,jquery 选择仅显示在第一个选项卡上,而不显示在第二个选项卡上。如果我从第二个选项卡中删除类名称,则会出现一个由我的数据填充的正常下拉列表,如果我添加类chosen-select,则字段根本不会加载。

我在两个选项卡上使用相同的字段。

enter image description here

不知道为什么会发生这种情况。我尝试过使用插件提供的示例代码,但它也不起作用

for (var selector in config) {
      $(selector).chosen(config[selector]);
    }

这是我的代码

 <script type="text/javascript">
   $(document).ready(function(){
       $('.chosen-select').chosen();
       $('.chosen-select1').chosen();
   });
</script>

<div class="bs-posts bs-posts-tabs" data-posts-id="togglable-tabs">
        <ul id="myTabs" class="nav nav-tabs" role="tablist">
            <li role="presentation" class="active"><a href="#home" id="home-tab" role="tab" data-toggle="tab" aria-controls="home" aria-expanded="true">Link</a></li>
            <li role="presentation"><a href="#profile" role="tab" id="profile-tab" data-toggle="tab" aria-controls="profile">Text</a></li>
        </ul>
        <div id="myTabContent" class="tab-content">
            <div role="tabpanel" class="tab-pane fade in active" id="home" aria-labelledBy="home-tab">

                {!! Form::open(['url' => 'posts', 'method' => 'POST']) !!}
                <p>
                    {!! Form::label('title', 'Title:') !!}
                    {!! Form::text('title', null, ['class' => 'form-control', 'id' => 'title']) !!}
                </p>

                <p>
                    {!! Form::label('link', 'Link:') !!}
                    {!! Form::text('link', null, ['class' => 'form-control', 'id' => 'link']) !!}
                </p>

                <p>
                    {!! Form::label('subreddit', 'Subreddit:') !!}
                    {!! Form::select('subreddit_id', $subreddits, null, ['class' => 'chosen-select']) !!}
                </p>

                <p>
                    {!! Form::submit('Submit Post', ['id' => 'submit', 'class' => 'btn btn-primary']) !!}
                </p>

                {!! Form::close() !!}
            </div>
            <div role="tabpanel" class="tab-pane fade" id="profile" aria-labelledBy="profile-tab">
                {!! Form::open(['url' => 'posts', 'method' => 'POST']) !!}
                <p>
                    {!! Form::label('title', 'Title:') !!}
                    {!! Form::text('title', null, ['class' => 'form-control', 'id' => 'title']) !!}
                </p>

                <p>
                    {!! Form::label('text', 'Text:') !!}
                    {!! Form::textarea('text', null, ['class' => 'form-control', 'id' => 'text']) !!}
                </p>

                <p>
                    {!! Form::label('subreddit', 'Subreddit:') !!}
                    {!! Form::select('subreddit_id', $subreddits, null, ['class' => 'chosen-select1']) !!}
                </p>

                <p>
                    {!! Form::submit('Submit Post', ['id' => 'submit', 'class' => 'btn btn-primary']) !!}
                </p>

                {!! Form::close() !!}
            </div>
        </div>
    </div><!-- /tabs -->

最佳答案

您必须在选项卡更改中触发插件,您可以使用事件 shown.bs.tab 事件。

代码:

$(document).ready(function () {

    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        var target = $(e.target).attr("href") // activated tab
        debugger
        if (target == '#home') {
            $('.chosen-select').chosen();
        }
        if (target == '#profile') {
            $('.chosen-select1').chosen();
        }
    });

    $('a[data-toggle="tab"]:first').trigger("shown.bs.tab");
});

演示:http://jsfiddle.net/IrvinDominin/o9xp6zcd/

关于jQuery 选择 : display multiple select fields on the same page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32769162/

相关文章:

javascript - 访问 $.getJSON 中的 DOM 元素

jQuery 选择器只选择第一个链接

html - 等宽间距与div表

php - 连接两个表并添加具有相同列id的数据

css - 添加了 jquery ui-autocomplete-loading 类,但样式不适用

php - SyntaxError : JSON. 解析:JSON 数据后出现意外的非空白字符

php - Laravel 4 Eloquent 返回错误的 ID

php - 从 Laravel 存储下载而不将整个文件加载到内存中

javascript - 可以通过 AJAX 使用 Google map /地点 'autocomplete' API 吗?

javascript - 嵌入式 react 组件未在 html 页面中呈现/加载。 (网络包/通天塔)