Vue.js + PHP选择输入在提交时不会保留

时间:2017-07-12 18:34:59

标签: javascript php html laravel vue.js

我的“问题”实际上是无知。我有一个HTML表单,我使用 Vue.js 用PHP数据填充v-select输入:

<div id="app">
    <form>
        <v-select name="user2_id" placeholder="Seleccionar Usuario" :options="[{!! $users !!}]" class="select"></v-select>
        <select name="user2_type" id="user2_type" class="form-control required">
        ...
        </select>
    </form>
</div>

JS部分:

<script src="https://unpkg.com/vue@2.1.10"></script>
<script src="https://unpkg.com/vue-select@2.0.0"></script>
<script>
    Vue.component('v-select', VueSelect.VueSelect);

    new Vue({
        el: '#app'
    });
</script>

当我提交表单时,我只获得了 user2_type ,但没有 user2_id 。我认为是因为浏览器无法将v-select识别为表单输入。

有没有简单的方法,或者我应该使用AJAX或其他方式提交表单?

谢谢

编辑:Web Inspector生成HTML输出

<div class="dropdown v-select select searchable" name="user2_id">
    <div type="button" class="dropdown-toggle clearfix">
        <input debounce="0" placeholder="Seleccionar Usuario" class="form-control" style="width: 100%;" type="search">
        <i role="presentation" class="open-indicator"></i>
        <div class="spinner" style="display: none;">
            Loading...
        </div>
    </div><!---->
</div>

1 个答案:

答案 0 :(得分:3)

vue-select不会创建实际的<select>字段,因为在Vue组件中,任何表单提交通常都是通过AJAX处理的,而不是标准的<form> POST。

您需要从<v-select>中获取价值 - 有两种方法。

  • 使用onChange回调(请参阅the docs)手动更新字段。
  • 使用v-model同时更新隐藏字段的值。
    <v-select v-model="user2_id"></v-select>
    <input type="hidden" v-model="user2_id">