Javascript vuejs 2.0.0中选择的占位符

Javascript vuejs 2.0.0中选择的占位符,javascript,select,vue.js,vuejs2,Javascript,Select,Vue.js,Vuejs2,我正在使用创建一个webapp。我使用以下代码创建了简单的选择输入: <select v-model="age"> <option value="" disabled selected hidden>Select Age</option> <option value="1"> 1 Year</option> <option value="11"> 11 Year</option>

我正在使用创建一个webapp。我使用以下代码创建了简单的选择输入:

  <select v-model="age">
    <option value="" disabled selected hidden>Select Age</option>
    <option value="1"> 1 Year</option>
    <option value="11"> 11 Year</option>
  </select>
但在为select添加默认值时,我开始出现此错误:

./~/vue loader/lib/template compiler.js?id=data-v-5cf0d7e0!中出错/~/vue loader/lib/selector.js?type=template&index=0/src/components/cde.vue 模板语法错误: 使用v-model时,将忽略上的内联选定属性。改为在组件的数据选项中声明初始值

@./src/components/cde.vue 10:23-151

@./~/babel loader/~/vue加载程序/lib/selector.js? 类型=脚本&索引=0/src/views/abcView.vue @./src/views/abcView.vue

@./src/router/index.js

@./src/app.js

@./src/client-entry.js

@多应用程序


我试图在组件的数据部分也给出默认值,但是什么也没发生。我也尝试了v-bind,但后来观察者停止了对年龄变量的操作。

唯一需要的是从默认选项中删除选定项:


对于其他可能在这个问题上发言的人,我还有一个额外的步骤来显示默认选项。在我的例子中,我绑定到的v-model返回null,而不是空字符串。这意味着一旦启动Vue绑定,就不会选择默认选项

要解决此问题,只需将默认选项的value属性绑定为null:


对于占位符,您需要将value属性设置为与在状态中定义为初始值相同的值

使用更改禁用的选项

<option value="null" disabled selected hidden>Select Age</option>

以Shivam Bisht为基础,以防无法访问默认值。 只需将value=undefined添加到占位符选项标记中

占位符文本

var demo=新的Vue{ el:‘演示’, 数据:函数{ 返回{ 参数:未定义, }; } } 占位符文本 荷兰女人很漂亮。 德国男人很慢。
我让它工作的唯一方法是:

<select v-model="selectedTemplate" class="btn btn-default">
   <option v-for="template in templates" v-bind:value="template.tasks"}{{template.name}}</option>
   <option :value="this.selectedTemplate" disabled hidden>Select a template</option>
</select>

键为:value=this.selectedtemplate(在禁用的隐藏选项中)。

将其他答案相加,因为它们在特定条件下似乎都是正确的: 它取决于v-model变量所期望的数据类型,例如,如果它期望的是一个传递:value=null或:value=undefined的整数,则可以使用,但是如果它期望的是一个对象,则需要传递:value={}

//Example: data/v-model expects integer
<select v-model="param">
   <option :value="undefined" disabled>Placeholder text</option>
   <option value="1">1</option>
   <option value="11">11</option>
</select>

//Example: data/v-model expects object
<select v-model="param">
   <option :value="{}" disabled>Placeholder text</option>
   <option
        v-for="item in items"
        :key="item.id"
        :value="item"
      >
        {{ item.propery }}
   </option>
</select>

对于字符串,空值或未定义的值应该可以使用,但您也可以在数据对象中定义占位符。

似乎可以很好地使用。是的,当我从默认选项中删除选定项时,它就可以使用了。感谢@haim770Yes,如果您想预先选择某个内容,您必须设置如下值。age=1,这将导致在DOM呈现时自动选择1年。另外:添加禁用,隐藏属性可以从选项列表中隐藏占位符。e、 g.选择年龄这是最好的答案。这种方法行不通。all当选择默认值以外的任何其他值时,selectbox的状态不会改变change@ktscript它在我的应用程序中起作用。也许您忘记了列表中的v-bind:value?不,我没有忘记,您的代码正在为我循环。但也许应该在我的代码中找到原因。对我来说是可行的,但我输入了:value=undefined,而不需要在数据中分配任何内容。
<option value="null" disabled selected hidden>Select Age</option>
data () {enter code here
  return {
    age: null,
  }
}
<select v-model="selectedTemplate" class="btn btn-default">
   <option v-for="template in templates" v-bind:value="template.tasks"}{{template.name}}</option>
   <option :value="this.selectedTemplate" disabled hidden>Select a template</option>
</select>
//Example: data/v-model expects integer
<select v-model="param">
   <option :value="undefined" disabled>Placeholder text</option>
   <option value="1">1</option>
   <option value="11">11</option>
</select>

//Example: data/v-model expects object
<select v-model="param">
   <option :value="{}" disabled>Placeholder text</option>
   <option
        v-for="item in items"
        :key="item.id"
        :value="item"
      >
        {{ item.propery }}
   </option>
</select>