【问题标题】:Laravel blade option selected not working选择的 Laravel 刀片选项不起作用
【发布时间】:2019-04-25 13:57:01
【问题描述】:

我的 laravel 刀片中有一个选择选项,允许用户选择一个行业类型。我现在的问题是,如果用户已经在确认页面中,然后单击取消按钮,则未在下拉菜单中选择所选行业。我可以得到它以前的值,但我不能在下拉菜单中选择它。这是我所做的:

<select name="industry" v-model="industry" v-bind:class="{ error: industryError }">
@foreach(config('const.industry') as $i => $industry)
    <option value="{{ $i }}" @if(old('industry' || $brand['industry']) == $i) selected @endif>{{ $industry }}</option>
    //also done this {{ $brand['industry'] == $i ? 'selected="selected"' : ''  }}
@endforeach
</select>

vue.js 文件

(function() {
    "use strict";
    new Vue({
    el: '#regist_brand',
    data: {
        industry : null,
        //other data
    },
    methods:{ 
        //my methods
    },
})();

【问题讨论】:

    标签: php laravel vue.js drop-down-menu


    【解决方案1】:

    old的用法不对,old的第二个参数如果不存在则为默认值,试试这个:

    old('industry', $brand['industry'])
    

    还要确保您的$brand['industry'] 包含先前选择的项目的键(ID)。您可以将其打印出来以确保您的选择:

    像这样调试:

    <option value="{{ $i }}" @if(old('industry', $brand['industry']) == $i) selected @endif>{{ $industry . ' - ' . $i . ' - ' . $brand['industry']}}</option>
    

    【讨论】:

    • 是的,我已经这样做了,但还是不行,我可以得到旧的值键,但仍然没有被选中。
    • 您能否详细说明您的列表是什么样的?例如,您是否有多个具有相同值的选项?您是否尝试过无条件选择一个以确保这不是问题?您是否有 JavaScript 可以在页面加载后清除选择?
    • 感谢您的澄清,我已经更新了我的问题,顺便说一下我正在使用 vue.js :) 这可能是没有选择值的原因。
    • 所以尝试注释掉你的 vue 代码并确保它只使用刀片就可以工作。然后为了使它与 Vue 一起工作,你不应该使用刀片,而只能通过将 industry 数据属性设置为所选值来使用 vue。你可以找那个here
    • 感谢您的意见,我终于解决了,请看我的回答:)
    【解决方案2】:

    感谢@nakov 的输入,我可以通过这种方式解决我的问题:

    <select name="industry" v-model="industry" v-bind:class="{ error: industryError }">
    @foreach(config('const.industry') as $i => $industry)
        <option value="{{ $i }}">{{ $industry }}</option>
        //also done this {{ $brand['industry'] == $i ? 'selected="selected"' : ''  }}
        @php
            $industry = $brand['industry'];
        @endphp
    @endforeach
    </select>
    <script>
        var industry = "{{ $industry }}";
    </script>
    

    vue.js 文件

    (function() {
        "use strict";
        new Vue({
        el: '#regist_brand',
        data: {
            industry : industry,
            //other data
        },
        methods:{ 
            //my methods
        },
    })();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      • 2015-10-26
      • 2019-01-12
      • 2018-11-21
      相关资源
      最近更新 更多