0
フィールドを指定するのではなくフォーム全体を投稿する方法はありますか?私はどこかでそれを見たと思ったが、今はそれを見つけることができない。Axios投稿全体から。 (Vue.js)
jQueryの中のこのようなビットは:
$.ajax({
data: $("form").serialize(),
//etc.
});
これはVue.jsコンポーネントです。
ミック
フィールドを指定するのではなくフォーム全体を投稿する方法はありますか?私はどこかでそれを見たと思ったが、今はそれを見つけることができない。Axios投稿全体から。 (Vue.js)
jQueryの中のこのようなビットは:
$.ajax({
data: $("form").serialize(),
//etc.
});
これはVue.jsコンポーネントです。
ミック
v-model
を使用する必要があります。 https://vuejs.org/v2/guide/forms.htmldata()
オブジェクトで作成がform
または類似した何かと呼ばれ、JSONとしてすべて一緒v-model='form.fieldName'
this.axios.post('url', this.form).then(...
で一つの可能な解決策は、@MUで述べたように、オブジェクトにv-model
を使用することです。
new Vue({
el: '#app',
methods: {
submit: function() {
const formData = new FormData(this.$refs['form']); // reference to form element
const data = {}; // need to convert it before using not with XMLHttpRequest
for (let [key, val] of formData.entries()) {
Object.assign(data, { [key]: val })
}
console.log(data);
axios.post('https://jsonplaceholder.typicode.com/posts', data)
.then(res => console.log(res.request.response))
}
}
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<div id="app">
<form ref="form" @submit.prevent="submit">
<input type="text" name="name">
<input type="number" name="age">
<button type="submit">Submit</button>
</form>
</div>
v-model
を使用して、これらの入力をバインドしたくないことができないとき
別にv-model
から、あなたはまた、例えば、ネイティブFormDataオブジェクトを使用することができます