前提・実現したいこと
jQueryでコメントフォーム送信前の処理を作っています。
送信ボタンをクリックしたら、<textarea>
に@hanakoと入れてから送信したいと思っています。
発生している問題
下記のソースコードでは、<textarea>
に入力してから送信ボタンをクリックしても、@hanakopが入らないという状況です。//問題の箇所
が正しく動作しません。
(なぜか読み込み直後で未入力時ならば@hanakoが入ります。)
どのように書けば@hanakopが入るかご教授頂ければと思い質問させて頂きました。
宜しくお願い致します。
該当のソースコード
html
1<div id="new-reply" class="reply-form"> 2 <form id="new-post" name="new-post" method="post" action="http://example.com/thread/testpost/"> 3 <div> 4 <div class="content-wrapper"> 5 <p>返信先:<span id="replyuser">@hanako</span></p> 6 <textarea id="reply_content" class="content" name="reply_content" cols="60" rows="12" tabindex="100" placeholder="コメント"></textarea> 7 </div> 8 <div class="submit-wrapper"> 9 <button type="submit" tabindex="104" id="reply_submit" name="reply_submit" class="button submit">送信</button> 10 </div> 11 </div> 12 <input name="reply_to" id="reply_to" value="1" type="hidden"> 13 </form> 14</div>
jquery
1 $('body').on("click",'#reply_submit',function(){ 2 3 //#reply_toのvalueが0以外のときは以下の処理をしてから送信 4 var targetid = $('#reply_to').val(); 5 if (targetid !== 0){ 6 var replyuser = $('#replyuser').text(); 7 $("#reply_content").prepend(replyuser); //問題の箇所 8 $("#new-post").submit(); 9 10 //#reply_toのvalueが0のときは普通に送信 11 } else { 12 $("#new-post").submit(); 13 } 14 15});
###解決
その後ご回答を頂戴し解決いたしました。
preventDefault()
を用いることと、そしてprepend()
で挿入するのではなくval()
を改変する。という2つの方法による次のソースコードです。
jquery
1$('body').on("click",'#reply_submit',function(e){ 2 3 //いったん処理を止める 4 e.preventDefault(); 5 6 //targetidが0以外の場合は「val()」を改変してから「submit()」する。 7 var targetid = $('#reply_to').val(); 8 if (targetid != 0){ 9 var replyuser = $('#replyuser').text(); 10 var replytext = $("#reply_content").val(); 11 $("#reply_content").val(replyuser + $("#reply_content").val()); 12 $("#new-post").submit(); 13 14 //targetidが0の場合は普通に「submit()」する。 15 } else { 16 $("#new-post").submit(); 17 } 18 19});
x_x様、mts10806様、改めましてどうもありがとうございました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/23 09:37
2018/08/23 10:07
2018/08/23 10:31
2018/08/23 10:31
2018/08/23 10:37 編集
2018/08/23 11:14
2018/08/23 12:14
2018/08/23 12:28
2018/08/23 12:35
2018/08/23 12:41
2018/08/23 15:03
2018/08/23 20:38
2018/08/24 00:54
2018/08/24 01:03