首页 > 解决方案 > 当依赖于 laravel livewire 中的其他值时,selectpicker 的初始化失败

问题描述

使用所有可能的解决方案使其工作

问题

启用切换按钮时,我想显示两个 div,一个用于普通选择标签,第二个用于 selectpicker,但它总是失败。但是 selectpicker 不能正确渲染。任何帮助,将不胜感激。

注意 Selectpicker CSS 和 JS 已经在 laravel 刀片文件中初始化。

代码

<div>
    <x-alert>
    </x-alert>
    <form class="kt-form" wire:submit.prevent="updateChanges">
        <div class="kt-portlet kt-portlet--mobile">
            <div class="kt-portlet__body">
                <div class="form-group">
                    <input type="hidden" wire:model="user_id">
                    <div class="form-group row">
                        <label class="col-3 col-form-label">Enable Preference</label>
                        <div class="col-3">
                            <span class="kt-switch">
                                <label>
                                    <input type="hidden" wire:model="is_prefered" value="0">
                                    <input type="checkbox" wire:model="is_prefered" value="1" >
                                    <span></span>
                                </label>
                            </span>
                        </div>
                    </div>
                    @error('is_prefered') <span class="text-danger">{{ $message }}</span>@enderror
                </div>
                @if($is_prefered=="1")
                <div class="form-group">
                    <label for="">Type</label>
                    <select wire:model="type" class="form-control">
                        <option value="selected">Select Preference Type</option>
                        <option value="user">User</option>
                        <option value="keyword">Keyword</option>
                    </select>                    
                    @error('type') <span class="text-danger">{{ $message }}</span>@enderror
                </div>
                @endif
                @if($is_prefered=="1")
                <div class="form-group">
                    @if($type == 'user')
                    <label for="">Value</label>
                        <select class="form-control kt-selectpicker" multiple >
                            <option value="" disabled>Select User</option>
                            @foreach($users as $user)
                                <option value="{{ $user->id }}" @if($type_value)@if(in_array($user->id,$type_value)) selected @endif @endif>{{ $user->name }}</option>
                            @endforeach
                        </select>
                    @elseif($type == 'keyword')
                    <label for="">Value</label>
                        <input type="text" wire:model="type_value" class="form-control">
                    @endif
                    @error('type') <span class="text-danger">{{ $message }}</span>@enderror
                </div>
                @endif
            </div>
            <div class="kt-portlet__foot">
                <div class="kt-form__actions">
                    <button type="submit" class="btn btn-primary">Update</button>
                    <button type="reset" class="btn btn-secondary">Cancel</button>
                </div>
            </div>
        </div>
    </form>
</div>

标签: laravel-8laravel-livewirebootstrap-selectpicker

解决方案


尝试更改 foreach 部分中的选项...

id}}" {{#if $type_value}} {{#if in_array($user->id,$type_value}} 已选择 {{/if}} {{/if}}>{{$user->name} }

推荐阅读