【问题标题】:Why required not working in vue.js 2?为什么需要不在 vue.js 2 中工作?
【发布时间】:2017-10-18 03:01:43
【问题描述】:

你可以在下面看到我的案例

我的 vue 组件是这样的:

<template>
    <select class="form-control" :name="elementName" v-model="selected" :required="module === 'addProduct'" >
        <option>Choose</option>
        <option v-for="option in options" v-bind:value="option.id" >{{ option.name }}</option>
    </select>
</template>
<script>
    ...
    export default {
        ...
        props: ['elementName', 'module'],
        data() {
            return {
                selected: 'Choose'
            };
        },
        ...
    };
</script>

结果是这样的:

我没有选择任何东西。我单击按钮提交,所需的不起作用。它不显示所需的

我尝试这样:

<option value="">Choose</option>

它有效。但是,第一次访问时,选项选择不显示

我该如何解决这个问题?

【问题讨论】:

    标签: vue.js vuejs2 vue-component


    【解决方案1】:

    查看他们的示例:https://vuejs.org/v2/guide/forms.html#Select

    它不显示任何内容,因为您有:selected: 'Choose',但您没有带有 value="Choose"option。 (值为空字符串,“Choose”只是选项元素的内部文本)。

    试试这个:

    <template>
        <select class="form-control" :name="elementName" v-model="selected" :required="module === 'addProduct'" >
            <option disabled value="">Choose</option>
            <option v-for="option in options" v-bind:value="option.id" >{{ option.name }}</option>
        </select>
    </template>
    <script>
        ...
        export default {
            ...
            props: ['elementName', 'module'],
            data() {
                return {
                    selected: ''
                };
            },
            ...
        };
    </script>
    

    【讨论】:

    • 我希望“选择”不要禁用。因为我的组件被另一个模块使用了
    • 您可以删除disabled 属性。将 'selected' observable 设置为 '' 将选择占位符 Choose 选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多