javascript - Vue.js 并根据其他字段更改输入字段

标签 javascript vue.js vuetify.js

我是 Vue.jsVuetify.js 的新手,在执行以下操作时遇到一些问题:

<v-select v-model="car.type"
    :items="types"
    label="Type"
></v-select>

<div v-if="car.type === 'fiat'">
    <v-text-field v-model="car.km" label="KM"></v-text-field>
    <v-text-field v-model="car.color" label="Color"></v-text-field>
</div>

<div v-else-if="car.type === 'bmw'">
    <v-text-field v-model="car.color.first" label="First color"></v-text-field>
    <v-text-field v-model="car.color.second" label="Second color"></v-text-field>
</div>

它在某种程度上起作用,并且根据类型更改输入字段,但我收到错误:

[Vue warn]: Error in render: "TypeError: undefined is not an object (evaluating '_vm.car.color.first')"

如果我将 v-model 更改为 car.colorfirst,没有嵌套的 JSON 对象,它就可以工作。猜测是因为 car.color.first 尚未定义。 但我需要另一个才能工作。

该怎么办,希望它有意义?

现场演示:https://codepen.io/alfredballe84/pen/MBXwKx

最佳答案

我对你的 html 和 js 进行了更改

<div id="app">
  <v-app>
    <v-form>

      <v-select v-model="car.type" :items="types" label="Type"></v-select>

      <div v-if="car.type === 'fiat'">
        <v-text-field v-model="car.km" label="KM"></v-text-field>
        {{car.km}}
        <v-text-field v-model="car.color" label="Color"></v-text-field>
        {{car.color}}
      </div>

      <div v-else-if="car.type === 'bmw'">
        <v-text-field v-model="car.colorMore.first" label="First color"></v-text-field>
        {{car.colorMore.first}}
        <v-text-field v-model="car.colorMore.second" label="Second color"></v-text-field>
        {{car.colorMore.second}}
      </div>

    </v-form>
  </v-app>
</div>

以及在vuejs中

new Vue({
  el: "#app",
  data() {
    return {
      car: { "type": "fiat",color:"",colorMore:{} },
      types: ["fiat", "bmw"]
    };
  }
});

您需要创建一个空对象(此处为colorMore)来绑定(bind),或者简单地使用一个元素(此处为color)来绑定(bind)。

codepen 中的 fork 网址:https://codepen.io/nikleshraut/pen/BPVNMv

关于javascript - Vue.js 并根据其他字段更改输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669290/

相关文章:

javascript - 将html输入文本字段设为文本溢出左省略号

vue.js - WebStorm 无法识别 Vue Material 组件 HTML 标签

laravel - Vuejs v-for 不填充 laravel blade 中的选择选项值

javascript - Vuetify 未在 Laravel 中应用

javascript - 如何在 vuetify 上安装翻译?

javascript - Jquery函数无法访问全局变量

javascript - 设置 slider Bootstrap 值

javascript - 在事件上触发多个方法并传递事件变量

html - 响应式表格标题未显示

javascript - 如何使用querySelector选择元素?