【发布时间】:2021-12-06 08:53:35
【问题描述】:
我正在创建一个循环遍历数组的表,并将表中的数组显示为列表。我将地址显示为输入字段值:value="location.address"
输入字段设置为禁用,当我单击编辑按钮时,我将禁用属性更新为 false,以便可以编辑输入字段。我添加了一个名为 editedAddress: null 的新属性并将其设置为 null,该属性将更新为当前地址属性 this.editedAddress = this.locations[index].address。
我想要的是当我点击编辑按钮时,我想要更新地址。我为更新按钮添加了以下代码,但它不起作用。
btnUpdate(index){
this.locations[index].address = this.editedAddress;
this.locations[index].disabled = !this.locations[index].disabled
}
这是完整的代码
<template>
<div>
<table>
<tr>
<th>#</th>
<th>Locations</th>
<th>Actions</th>
</tr>
<tr v-for="(location, index) in locations" :key="index">
<td>{{index + 1}}</td>
<td>
<input type="text" :value="location.address" :disabled="location.disabled">
</td>
<td>
<div class="action-btns">
<button @click="btnEdit(index)">Edit</button>
<button @click="btnUpdate(index)">Update</button>
<button @click="btnDelete(index)">Delete</button>
</div>
</td>
</tr>
</table>
<input type="text" v-model="address">
<button @click="addBtn">Add</button>
</div>
</template>
<script>
export default {
data(){
return{
locations:[
{
address:'Mall of lahore',
disabled: true
},
{
address: 'The Post Office',
disabled: true
},
{
address: 'Mall of Dubai',
disabled: true
}
],
address: '',
editedAddress: null
}
},
methods:{
btnEdit(index){
this.locations[index].disabled = !this.locations[index].disabled
this.editedAddress = this.locations[index].address
},
btnUpdate(index){
this.locations[index].address = this.editedAddress;
this.locations[index].disabled = !this.locations[index].disabled
},
btnDelete(index){
this.locations.splice(index , 1)
},
addBtn(){
let newAddress = {
address: this.address,
disabled: true
}
this.locations.push(newAddress)
this.address = '';
}
}
}
</script>
请让我知道我做错了什么或者是否有更好的方法来解决它
【问题讨论】:
-
你能解释清楚吗?单击编辑按钮后您想要什么行为?将输入值设置为空?
-
当我单击编辑按钮时,1.) 我希望输入字段禁用属性为 false,以便我可以编辑它。这部分我已经完成了。 2.)当我更新输入字段时,点击更新按钮应该更新字段
标签: javascript arrays vue.js vuejs3