Vue 提交表单

11 篇文章 0 订阅

1、form标签 @submit.prevent="submit($event)"

<form @submit.prevent="submit($event)">

    <input type="text" class="form-control" placeholder="请输入姓名" name="username">

    <input type="submit" value="登陆" class="login" />

</form>
methods:{
    submit: function(event) {

        var formData = new FormData(event.target);
        
        //vue-resource
        this.$http.post('/api', formData).then(res => {
              // success callback
          }, err => {
              // error callback
        });
        
        //axios
        axios.post('/user', formData).then(res => {
            // success callback
        }).catch(err => {
            // error callback
        });
    }
}

2、formData.append()

设置参数格式

  •  application/json 

axios默认提交格式;传递到后台的将是序列化后的json字符串,格式为JSON格式

格式:{"name": "sun"}

  •  multipart/form-data

用表单上传文件时,必须使form表单的enctype属性或者ajax的contentType参数等于multipart/form-data

格式:Contnet-Disposition: form-data; name=sun

不同字段以--boundary开始,接着是内容描述信息,最后是字段具体内容。

如果传输的是文件,还要包含文件名和文件类型信息

  •  text/XML 

  • application/x-www-form-urlencoded 

​​​​​​​表单默认提交方式;传递到后台的将是key-value的形式

格式:name: sun

 <form>
        <input type="text" value="" v-model="name" placeholder="请输入用户名">
        <input type="text" value="" v-model="age" placeholder="请输入年龄">
        <input type="file" @change="getFile($event)">
        <button @click="submitForm($event)">提交</button>
  </form>
methods:{
    submit: function(event) {

        event.preventDefault();

        let formData = new FormData();

        //下面是表单绑定的data 数据
        formData.append('name', this.name);
        formData.append('age', this.age);
        formData.append('file', this.file);
        
        //vue-resource
        this.$http.post('/api', formData).then(res => {
              // success callback
          }, err => {
              // error callback
        });
        
        //axios

        //根据后台接收参数格式进行修改
        let config = {
             headers: {
               'Content-Type': 'multipart/form-data'
             }
         }
        
        axios.post('/api',formData, config).then(res => {
            // success callback
        }).catch(err => {
            // error callback
        });
    }
}
  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue提交表单到后端的过程可以分为以下几个步骤: 1. 在Vue组件中定义表单数据和提交方法。 2. 在表单中绑定数据和事件,将用户填写的数据绑定到表单数据中。 3. 在提交方法中,将表单数据作为参数,调用后端接口进行数据提交。 4. 在后端接口中,接收前端提交的数据,进行数据处理和存储。 具体实现可以参考以下步骤: 1. 在Vue组件中定义表单数据和提交方法: ``` <template> <div> <form> <label>姓名:</label> <input type="text" v-model="formData.name"> <br> <label>性别:</label> <input type="radio" value="男" v-model="formData.gender">男 <input type="radio" value="女" v-model="formData.gender">女 <br> <label>爱好:</label> <select v-model="formData.hobbies" multiple> <option value="篮球">篮球</option> <option value="足球">足球</option> <option value="乒乓球">乒乓球</option> </select> <br> <button @click.prevent="submitForm">提交</button> </form> </div> </template> <script> export default { data() { return { formData: { name: '', gender: '', hobbies: [] } } }, methods: { submitForm() { // 调用后端接口提交表单数据 // ... } } } </script> ``` 2. 在表单中绑定数据和事件,将用户填写的数据绑定到表单数据中: 在上面的代码中,我们使用了v-model指令将表单元素和formData中的数据进行了双向绑定。这样,当用户在表单中填写数据时,formData中的数据也会随之改变。 3. 在提交方法中,将表单数据作为参数,调用后端接口进行数据提交: 在上面的代码中,我们定义了一个submitForm方法,当用户点击提交按钮时,会调用这个方法。在这个方法中,我们可以将formData作为参数,调用后端接口进行数据提交。具体的接口调用方式可以根据后端接口的实现方式进行调整。 4. 在后端接口中,接收前端提交的数据,进行数据处理和存储: 在后端接口中,我们可以使用相应的框架或库来接收前端提交的数据,并进行数据处理和存储。具体的实现方式可以根据后端框架或库的文档进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值