vue提交表单问题

发布于 2022-09-03 23:29:42 字数 1047 浏览 16 评论 0

比如这里有个表单demo:

<div id="app">
    <form @submit.prevent="submit">
        姓名
        <div class="field">
            <input name="name" type="text">
        </div>
        性別
        <div class="field">
            男<input name="gender" type="radio" value="male">
            女<input name="gender" type="radio" value="female">
        </div>
        <input type="submit" value="提交">
    </form>
</div>

用vue提交表单:

new Vue({

    el: '#app',
    methods: {
        submit: function(event) {
            
            var formData = new FormData(event.target);
            
            this.$http.post('/path/to', formData).then((response) => {
                // success callback
            }, (response) => {
                // error callback
            });

        }
    }

})

问题:
点击提交的时候,显示如下错误:Uncaught TypeError: Cannot read property 'target' of undefined,怎么个意思?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

厌味 2022-09-10 23:29:43

你的 formData 是错误的,试试下面这样获取表单数据吧。

<div id="app">
    <form @submit.prevent="submit">
        <div class="field">
            姓名:<input type="text" v-model="user.name">
        </div>
        
        <div class="field">
            性別:
            <label>
                <input type="radio" value="男" v-model="user.gender"> 男
            </label>
            <label>
                <input type="radio" value="女" v-model="user.gender"> 女
            </label>
        </div>
        
        <input type="submit" value="提交">
    </form>
</div>
new Vue({

    el: '#app',
    data: {
        user: {
            name: '',
            gender: ''
        }
    },
    methods: {
        submit: function() {
          var formData = JSON.stringify(this.user); // 这里才是你的表单数据
          
          this.$http.post('/path/to', formData).then((response) => {
              // success callback
          }, (response) => {
              // error callback
          });
        }
    }

})
悲凉≈ 2022-09-10 23:29:43

试试?

@submit="submit($event)"
如梦初醒的夏天 2022-09-10 23:29:43
<div id="app">
    <form @submit.prevent="submit">
        <div class="field">
            姓名:<input type="text" v-model="user.name">
        </div>
        
        <div class="field">
            性別:
            <label>
                <input type="radio" value="男" v-model="user.gender"> 男
            </label>
            <label>
                <input type="radio" value="女" v-model="user.gender"> 女
            </label>
        </div>
        
        <input type="submit" value="提交">
    </form>
</div>
new Vue({

    el: '#app',
    data: {
        user: {
            name: '',
            gender: ''
        }
    },
    methods: {
        submit: function() {
          var formData = JSON.stringify(this.user); // 这里才是你的表单数据
          console.log(formData);
        }
    }

})
各自安好 2022-09-10 23:29:43

你好..如果是input的类型是file要怎么获取啊?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文