如何用 Vue 交换输入字段?

Posted

技术标签:

【中文标题】如何用 Vue 交换输入字段?【英文标题】:How to swap input fields with Vue? 【发布时间】:2021-03-23 03:45:04 【问题描述】:

当触发click 事件时,我难以交换字段。下面是我的代码,它只是更改了一次值和名称,但如果我再次单击它就不起作用。它也不会更改 v-model 值。谁能帮帮我?

html

<div id='app'>
      
  <button @click="swapInputFields">Swap</button>
  <input type="text" :name="[field1]" v-model="model1" :value="[fromCity]"><br>
  <input type="text" :name="[field2]" v-model="model2" :value="[toCity]">

</div>

Vue 代码:

var app = new Vue(
   el: '#app',
   data: 
      fromCity:'FROM',
      toCity :'TO',
      field1 :'name1',
      field2 :'name2'
   ,
   methods: 
      swapInputFields()
      
         this.fromCity = 'TO';
         this.toCity ='FROM';
         this.field1 = 'name2';
         this.field2 ='name1';
      
   
);

【问题讨论】:

存储 direction 变量可能更有意义,以表示它是从 -> 到或到 -> 从,而不是动态更改模型。 【参考方案1】:

从绑定中删除 [ ] 括号并从输入中删除除 typev-model 之外的所有属性:

<button @click="swapInputFields">Swap</button>
<input type="text" v-model="fromCity"><br>
<input type="text" v-model="toCity">

您的数据中只需要那些模型变量fromCitytoCity

data() 
   return 
      fromCity:'FROM',
      toCity :'TO'
   
,

然后像这样交换它们:

swapInputFields()

   const temp = this.fromCity;
   this.fromCity = this.toCity;
   this.toCity = temp;

这是一个演示:

new Vue(
  el: "#app",
  data()
     return 
        fromCity:'FROM',
        toCity :'TO'
     
  ,
  methods: 
    swapInputFields()
    
      const temp = this.fromCity;
      this.fromCity = this.toCity;
      this.toCity = temp;
    
  
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <button @click="swapInputFields">Swap</button>
  <input type="text" v-model="fromCity"><br>
  <input type="text" v-model="toCity">
</div>

【讨论】:

以上是关于如何用 Vue 交换输入字段?的主要内容,如果未能解决你的问题,请参考以下文章

哪个人可以告诉我如何用CONSOLE登陆交换机,救命啊,拜贴啊~

如何用网页划VLAN?

如题:如何用一条SQL语句按输入的参数进行判断执行查询数据

vue-cli建立的项目如何在手机端运行以及如何用charles来抓包

如何用sql实现自动填充日期

webservice接口,如何用Java代码更新数据库中的一个字段的值,其他字段值保持不变?