お世話になっております。
今回、jQueryに関して質問がございます。
なお、バージョンは2.3.3です。
今回、動的にフォームを追加するため、以下のHTMLを用意しそれをcloneする方法を取っています。
html
1<table id="post-details"> 2 <tr id="post-detail" style="display: none"> 3 <td> 4 <select name="posts[post_type][]" id="posts-post-type"> 5 <option value="0">質問</option> 6 <option value="1">バグ報告</option> 7 <option value="2">その他</option> 8 </select> 9 </td> 10 <td><input type="text" name="posts[post_title][]" id="posts-post-title"></td> 11 <td><input type="text" name="posts[post_content][]" id="posts-post-content"></td> 12 </tr> 13</table>
これとは別にpost_type
とpost_title
を入力する欄があり、
そこの下にある「追加」を押すことでテーブルにcloneしていきます。
HTML
1<label for="post-type">分類</label> 2<select name="post_type" id="post-type"> 3 <option value="0">質問</option> 4 <option value="1">バグ報告</option> 5 <option value="2">その他</option> 6</select> 7<label for="post-title">タイトル</label> 8<input type="text" name="post_title" id="post-title"> 9<button type="button" id="btnAdd">追加</button>
JavaScript
1$(function(){ 2 $(document).on('click', '#btnAdd', function(){ 3 $('#post-detail').clone().removeAttr('id').appendTo('#post-details') 4 .find('#posts-post-type').val($('#post-type').val()) 5 .find('#posts-post-title').val($('#post-title').val()) 6 .show(); 7 }); 8});
「追加」ボタンが押されるとcloneするコードが実行されます。
cloneするとselectの値がうまく渡らないと聞いたのでcloneした後に自力で渡すようにしたのですが、
このコードだとpost_title
へは追加フォームのデータが入るのですが、
post_type
は初期値の「質問」しか入りません。
解決方法、または間違えている場所はありますでしょうか?
ご回答よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/18 02:17