以下の様なコードがあります。
html
1<form method="POST" enctype="multipart/form-data"> 2 {% csrf_token %} 3 <div class="btn-wrap"> 4 <button class="btn-save_and_edit" type="submit" name="save_and_edit">一時保存して編集を継続</button> 5 <div class="btn-save_and_edit_loading"> 6 <img src="load.gif"> 7 </div> 8 </div> 9 {{ form|bootstrap}} 10 <div class="btn-wrap"> 11 <button class="btn-save" type="submit">投稿</button> 12 <div class="btn-save_loading"> 13 <img src="load.gif"> 14 </div> 15 </div> 16</form>
javascript
1$(function() { 2 $('.btn-save').click(function(e) { 3 e.preventDefault(); 4 $('form').submit(); 5 $('.btn-save').hide(); 6 $('.btn-save_loading').show(); 7 }); 8}); 9 10$(function() { 11 $('.btn-save_and_edit').click(function(e) { 12 e.preventDefault(); 13 $('form').submit(); 14 $('.btn-save_and_edit').hide(); 15 $('.btn-save_and_edit_loading').show(); 16 }); 17});
css
1.btn-save_and_edit_loading { 2 display: none; 3} 4 5.btn-save_loading { 6 display: none; 7}
本来なら押すボタンによって処理を分けたいのですが、
javascript
1$('form').submit();
この指定により、1つ目のボタンをクリックしても2つ目のボタンの処理が実行されてしまいます。
この処理を分けたいのですが、どの様にすれば良いでしょうか?
ちなみに、下記記述があるか無いかでサーバーサイドで処理を分岐しています。
python
1name="save_and_edit"
python
1 def form_valid(self, form): 2 form.instance.user_id = self.request.user.id 3 post = form.save() 4 # 保存して編集を続けるボタン 5 if 'save_and_edit' in self.request.POST: 6 return redirect('post:post_update', pk=post.id) 7 else: 8 return redirect('post:create_done')
回答1件
あなたの回答
tips
プレビュー