首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用select时返回布尔值和非字符串?

如何在使用select时返回布尔值和非字符串?
EN

Stack Overflow用户
提问于 2017-07-23 20:09:33
回答 4查看 9.8K关注 0票数 5

我有这个:

代码语言:javascript
复制
            <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>

我在初始化它的时候设置了allowMultiple=true,但是当我选择No然后选择allowMultiple='false'时,它不再是一个布尔值而是一个字符串?如何让它成为布尔值?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-23 20:23:04

在HTML中,如果你在一个标签中设置属性值,那么这个值就是默认的类型--string.So你可以使用vue v-model将它绑定到其他类型的值上,例如,Boolean,Number等等。

代码语言:javascript
复制
new Vue({
  el:'#app',
  data: {
    allowMultiple: false
  },
  methods: {
    print: function () {
      alert(this.allowMultiple);
    }
  }
})
代码语言:javascript
复制
<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>

票数 9
EN

Stack Overflow用户

发布于 2017-07-23 21:22:25

这里有一个在Vue中实现的方法。而不是在html中硬编码你的选项。使用Vue方法,在Vue data中设置一个选项数组,然后使用v-for呈现数组中的所有选项。

每个选项都应该有两个属性:一个文本和一个值。值应该是您要查找的布尔值。

现在,每当用户更改所选选项时,它都将是布尔值。

代码语言:javascript
复制
new Vue({
  el: '#app',
  data: {
    allowMultiple: true,
    options: [
      {text: 'Yes', value: true},
      {text: 'No', value: false},
    ],
  }
})
代码语言:javascript
复制
<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>

票数 6
EN

Stack Overflow用户

发布于 2021-02-12 03:56:42

我发现对我有效的更简单、更快捷的方法是:

代码语言:javascript
复制
<select id="selected" v-model="item.selected">
    <option :value=0>No</option>
    <option :value=1>Yes</option>
</select>

也许它对任何人都有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45264923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档