[英]Using v-model with html select option
I'm trying to have v-model notice which select option a user has clicked on but it's not working and staying as null.我正在尝试让 v-model 通知用户单击了哪个 select 选项,但它不起作用并保持为 null。 My select field is a selection of the 50 US states and it is its own component in a separate file.
我的 select 字段是美国 50 个州的选择,它是单独文件中的自己的组件。 I need v-model to notice the current value that is selected in order to send it back to a database and store the value.
我需要 v-model 来注意选择的当前值,以便将其发送回数据库并存储该值。
Inside the form表格内
<SelectBox v-model="editFormData.state" />
The Select Box component Select 盒组件
<template>
<select name="state" id="state">
<option value="" selected="selected">State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District Of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</select>
</template>
<script>
export default {
name: 'SelectBox',
};
</script>
<style scoped>
select {
font-size: 12px;
color: rgba(0, 0, 0, 0.5);
-webkit-appearance: menulist;
-moz-appearance: menulist;
border-radius: 3px;
}
</style>
As docs said, By default, v-model on a component uses value as the prop and input as the event.正如文档所说,默认情况下,组件上的 v-model 使用 value 作为 prop 和 input 作为事件。 So you need the
value
and input event
to change the value
所以你需要
value
和input event
来改变value
<select name="state" id="state" :value="value" @change="e => $emit('input', e.target.value)">
...
</select>
<script>
export default {
name: 'SelectBox',
props: {
value: String,
},
};
</script>
In you select component use v-modal as below在你 select 组件中使用 v-modal 如下
<select v-model="model" name="state" id="state">
<option value="" selected="selected">State</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
</select>
And inside the form you just call在你刚刚调用的表格中
<SelectBox/>
You can't use v-model in the component.您不能在组件中使用 v-model 。 only form controll select will get this modal value.
只有表单控件 select 会得到这个模态值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.