https://qiita.com/hiropy0123/items/33f3c3ffbb5879e8fe0a
上記のサイトを参考にお問合せフォームを作成しています。
全く同じ挙動でメール送信は成功しました。
このフォームにselectで選択する項目を増やしたいですが
v-modelの扱いがよく分かりません。
また、メール送信成功後に初期ページに戻ると2回目以降メール送信ができなくなるのですが何故でしょうか?
closeを押下したタイミングでFormの中身をresetFormしています。
ContactForm.vue
1 .form-content 2 label.required お問合せカテゴリ 3 input( 4 v-model="formData.category" 5 type="select" 6 class="form-control" 7 name="category" 8 required 9 autocomplete="name" 10 ) 11 .input-hint 12 span.error-info(v-show="touched.category && !formData.category") 必須項目です
formModal.vue
1 .modal 2 div.infomation.info_confirm(:class="myStatus") {{ dataResponse ? dataResponse.message : 'ご入力内容にお間違いがないかご確認の上、「送信」ボタンを押してください。入力内容を編集する場合は「戻る」を押してください。' }} 3 .confirm(v-if="!dataResponse") 4 dl 5 dt お問合せカテゴリ 6 dd {{ getFormData.category }} 7 dl 8 dt 名前 9 dd {{ getFormData.yourName }} 10 dl 11 dt 会社名 12 dd {{ getFormData.campany }} 13 dl 14 dt メールアドレス 15 dd {{ getFormData.yourEmail }} 16 dl 17 dt お問い合わせ内容 18 dd(v-html="getFormData.message") 19
index.js
1// # Modules Mode Vuex Store 2export default { 3 state: () => ({ 4 formData: { 5 category: null, 6 yourName: null, 7 campany: null, 8 yourEmail: null, 9 message: null 10 } 11 }), 12 getters: { 13 getFormData: state => state.formData 14 }, 15 mutations: { 16 setFormData(state, payload) { 17 state.formData = payload 18 } 19 }, 20 actions: { 21 resetForm(context) { 22 const emptyForm = { 23 category: null, 24 yourName: null, 25 campany: null, 26 yourEmail: null, 27 message: null 28 } 29 context.commit('setFormData', emptyForm) 30 } 31 } 32} 33
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。