vue.js - 使用 Vue 访问选择元素的选定文本(而不是值)

标签 vue.js vuejs2

只是尝试通过 Vue 访问选择元素的选定文本(而不是值):

var App = window.App = new Vue({
  el: '#app',
  data: {
    style: '5'
  },
  computed: {
    calctitle: function() {
      return this.otype.text;
    }
  }
});

只是一个示例样式对象:

$item = new stdClass();
$item->value = 5;
$item->text = 'Name 1';
$style = array($item);
...

在这里,我尝试创建一个绑定(bind),因为如果不创建绑定(bind),则无法提交表单,因为选项值为“[object Object]”,但我需要真正的 int 值。

<p>{{calctitle}}</p>
<select v-model="style" name="style">
    <option>Choose style</option>
    <?php foreach ($style as $item) : ?>
        <option value="<?php echo $item->value; ?>"  v-bind:otype="{value: <?php echo $item->value; ?>, text: '<?php echo $item->text; ?>'}"><?php echo $item->text; ?></option>
    <?php endforeach ?>
</select>

最佳答案

我认为您无法使用计算来完成此操作,因为您不会将所选选项存储在任何地方,仅存储其值。

相反,您可以创建一个数据项,并使用选择上的 change 事件来拉取所选选项并从其 textContent 设置数据值。

new Vue({
  el: '#app',
  data: {
    selectedText: '',
    style: '5'
  },
  methods: {
    updateFromSelectedText(event) {
      const options = event.target.options;
      const selectedOption = options[options.selectedIndex];

      this.selectedText = selectedOption.textContent;
    }
  }
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.3.3/vue.min.js"></script>
<div id="app">
<p>{{selectedText}} and {{style}}</p>
<select v-model="style" name="style" @change="updateFromSelectedText">
    <option>Choose style</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <!--option value="<?php echo $item->value; ?>"  v-bind:otype="{value: <?php echo $item->value; ?>, text: '<?php echo $item->text; ?>'}"><?php echo $item->text; ?></option-->

</select></div>

关于vue.js - 使用 Vue 访问选择元素的选定文本(而不是值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44117064/

相关文章:

vue.js - 试图在我的 Vue 组件中访问mounted() 中的状态对象

javascript - 如何使用 vue.js 显示格式化的 html 字符串

javascript - Vue.js 获取所有 v-model 绑定(bind)

vue.js - Vue设置colspan

javascript - Vuex 状态未更新

javascript - VueJS : Filter through objects in an array

typescript - Vue 2 单文件组件不适用于仅运行时构建

vue.js - Vuetify/嵌套验证

javascript - V-bind等级多种选择

laravel - 在 Blade 模板中使用 Vue 组件是最佳实践吗?