Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js Vuejs:多次添加同一表单_Vue.js - Fatal编程技术网

Vue.js Vuejs:多次添加同一表单

Vue.js Vuejs:多次添加同一表单,vue.js,Vue.js,我用的是laravel和vuejs 我希望能够做到的一件事是,允许用户在单击按钮时创建多个地址 下面是示例代码: <table> <tr> <th>POSTAL CODE</th> <td><input type="text" name="postal_code[]" v-model="" /></td> </tr> <tr>

我用的是laravel和vuejs

我希望能够做到的一件事是,允许用户在单击按钮时创建多个地址

下面是示例代码:

<table>
    <tr>
        <th>POSTAL CODE</th>
        <td><input type="text" name="postal_code[]" v-model="" /></td>
    </tr>   
    <tr>
        <th>City</th>
        <td>
           <select name="city[]" v-model="">
                <option>ABC</option>
           </select>
        </td>
    </tr>   
    <tr>
        <th>District</th>
        <td><input type="text" name="District[]" v-model="" /></td>
    </tr>   
    <tr>
        <th>Street</th>
        <td><input type="text" name="Street[]" v-model="" /></td>
    </tr>   
    <tr>
        <th>Name/th>
        <td>
          last_name<input type="text" name="last_name[]" v-model="" />
          first_name<input type="text" name="first_name[]" v-model="" />
       </td>
    </tr>   
</table>
<button v-on:click="add-form">ADD</button>

邮政编码
城市
基础知识
地区
街头
姓名/th>
姓
名字
添加
编辑对不起,我的问题不够清楚。 我想复制整个表,而不仅仅是一个输入,每次用户单击按钮,我都想显示更多的表(具有旧输入的旧表尚未更改)

我找到了解决办法。
非常感谢你

您需要做的就是创建一个空的地址数组,然后单击按钮将输入推入该数组。下面是一个例子:

Jsfiddle:


添加
{{地址}
newvue({
el:“#应用程序”,
数据(){
返回{
地址输入:“”,
地址:[]
}
},
方法:{
地址(){
this.addresses.push(this.addressInput)
//清除输入
this.addressInput=“”
}
}
})
是要“复制”整个表还是只复制一个输入?我想第二个是我想要的。在这种情况下,我宁愿将信息推送到如下数组:

<template>
  <div class="formApp">
    <input type="text" name="steet" v-model="street">
    <button @click="addStreet">add</button>
    <div v-for="str in streetArray">
      <div @click="removeStreet($event)">{{ str }}</div>
    </div>
  </div>
</template>

<script>

export default {
  name: 'formApp',
  data() {
    return {
      streetArray: [],
      street: '',
    }
  },
  methods: {
    addStreet() {
      this.streetArray.push(this.street);
      this.street = '';
    },
    removeStreet(event) {
      var index = this.streetArray.indexOf(event.target.innerText);
      index > -1 ? this.streetArray.splice(index, 1):'';
    }
  }
}
</script>

添加
{{str}}
导出默认值{
名称:“formApp”,
数据(){
返回{
StreeTray:[],
街道:'',
}
},
方法:{
addStreet(){
这条街推(这条街);
这条街=“”;
},
removeStreet(事件){
var index=this.streetaray.indexOf(event.target.innerText);
索引>-1?此.streetray.splice(索引,1):“”;
}
}
}
addStreet将在您每次单击按钮时添加一条新街道,然后它将清除输入。然后,如果用户想要删除街道,则必须单击街道名称。这种删除东西的方式对用户根本不友好,因此您可以在每个街道名称中添加一个图标来声明这种可能性


此外,这只是一个提示,因为在编写街道名称时可能会出现错误,用户需要一种删除它们的方法。为错误的街道提供大量输入,或者无法删除您添加的街道,这将是一场彻底的混乱。不管怎样,你可以试试下面的代码

newvue({
el:“#示例3”,
数据:{
标题:“名单”,
项目:{},
项目:[]
},
方法:{
addform:函数(){
this.items.push(this.item);
此项={};
}
}
})

邮政编码
城市
基础知识
地区
街头
名称
姓氏
名字 添加
{{title}} {{value.邮政编码} {{value.city} {{value.District}} {{value.last_name} {{value.first{u name}
Tks谢谢你的友好回答,但我想复制整个表格。我编辑了我的问题,请看一下。谢谢。我编辑了我的问题,请看一下。解决方案是什么,我也有一个类似的问题?