我有这个:-
<div class="form-group">
<label for="">Allow Multiple</label>
<select class="form-control" v-model="allowMultiple">
<option value=true>Yes</option>
<option value=false>No</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
我allowMultiple=true在初始化它时设置,但是当我选择 NoallowMultiple='false'那么它不再是一个布尔值而是一个字符串?如何让它成为布尔值?
在 HTML 中,如果在标签中设置属性值,则该值将是默认类型-- string。因此您可以使用 vuev-model将其绑定到其他类型的值,例如,Boolean、Number 等。以下代码工作,结果是你想要的
new Vue({
el:'#app',
data: {
allowMultiple: false
},
methods: {
print: function () {
alert(this.allowMultiple);
}
}
})Run Code Online (Sandbox Code Playgroud)
<div class="form-group" id='app'>
<label for="">Allow Multiple</label>
<select class="form-control" v-model="allowMultiple" @change='print'>
<option :value='true'>Yes</option>
<option :value='false'>No</option>
</select>
</div>
<script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>Run Code Online (Sandbox Code Playgroud)
这是在 Vue 中执行此操作的一种方法。而不是在 html 中硬编码您的选项。使用 Vue 方式,在你的 Vue 数据中设置一个选项数组,然后用于v-for渲染数组中的所有选项。
每个选项应该有 2 个属性:一个文本和一个值。该值应该是您要查找的布尔值。
现在,每当用户更改所选选项时,它将始终为布尔值。
new Vue({
el: '#app',
data: {
allowMultiple: true,
options: [
{text: 'Yes', value: true},
{text: 'No', value: false},
],
}
})Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.2/vue.min.js"></script>
<div id="app">
<div class="form-group">
<div>Allow multiple: {{allowMultiple}} [Type: {{typeof allowMultiple}}]</div><br>
<label for="">Allow Multiple</label>
<select class="form-control" v-model="allowMultiple">
<option v-for="option in options" :value="option.value">{{option.text}}</option>
</select>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
小智 6
我发现对我有用的更简单快捷的方法是:
<select id="selected" v-model="item.selected">
<option :value=0>No</option>
<option :value=1>Yes</option>
</select>
Run Code Online (Sandbox Code Playgroud)
也许这对任何人都有用。
| 归档时间: |
|
| 查看次数: |
8940 次 |
| 最近记录: |