Javascript vuejs 2.0.0中选择的占位符
我正在使用创建一个webapp。我使用以下代码创建了简单的选择输入: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>
<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>