前提・実現したいこと
Vue.jsのwatch内で代入したdataをリクエストパラメーターに反映させたい。
4つのselectタグをwatchで監視して、それぞれ値が変化した時にsubmitしています。
この時、どのselectを変化させたのかを遷移先のコントローラーで取得するため、
hiddenタグにwatch内で識別文字列を代入して一緒にpostしたい。
発生している問題・エラーメッセージ
バインド自体は正常で、submitするまではvueのdataと画面のタグの値が連動 しているにも関わらず、送られたリクエストパラメータはwatch内で代入する前の値に なってしまっています。 何が間違っているかわかる方おられませんか?
該当のソースコード
javascript
1var input_form = new Vue({ 2 el:'#input_form', 3 data:{ 4 category_balance:'支出', //<select>タグとバインド 5 category_large:'', //<select>タグとバインド 6 category_middle:'', //<select>タグとバインド 7 category_small:'', //<select>タグとバインド 8 changed_form:'aaa' //<hidden>タグとバインド 9 }, 10 watch:{ 11 category_balance:{ 12 handler:function(newVal,oldVal){ 13//ここで値を代入すると、hiddenタグの値が'category_balance'に変化するが、 14//送られた値は代入前の'aaa'になる。 15 this.changed_form='category_balance'; 16 $(form).submit(); 17 } 18 }, 19 category_large:{ 20 handler:function(newVal,oldVal){ 21 changed_form='category_large'; 22 $(form).submit(); 23 } 24 }, 25 category_middle:{ 26 handler:function(newVal,oldVal){ 27 chaged_form='category_middle' 28 $(form).submit(); 29 } 30 }, 31 } 32})
html
1<!--抜粋--> 2<form action="input_book" method="post" id="form"> 3<input type="hidden" name="changed_form" v-model="changed_form">
試したこと
submit()を止めて、hiddenタグ、selectタグの値が正しくバインドされていることを確認した。
補足情報(FW/ツールのバージョンなど)
Lavel
Vue.js
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/16 23:30