teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

再追記

2018/01/16 04:45

投稿

sousuke
sousuke

スコア3830

answer CHANGED
@@ -1,31 +1,26 @@
1
1
  Smartyはよく存じ上げないのですがクライアント側のjavascriptで
2
2
  サーバーサイド(tpl)のコードを書いても解釈してもらえないと思います。
3
3
 
4
- 追記
4
+ #追記
5
5
  実験はしていませんが…
6
6
  ```html
7
7
  <select name="test_info" id="select_test_info" data-native-menu="true">
8
8
  ```
9
9
  ここの中身をコピーするといいのではと見ました。もともとですがid="select_test_info"などが重複してます…
10
10
 
11
- ```javascript
12
- var content = '';
13
- var next_idx = $('#test_tbody').children().length;
14
- next_idx++;
11
+ 長いので削除しました。
15
12
 
16
- // content += '{assign var=\'i\' value=0}';
17
- content += '<tr>';
13
+ こんな感じでしょうか…他にも色々サーバー側の記述がありますが都度変更してください。
18
- content += '<td><input type="radio" id="in_test_radio{$i}" name="test_radio['+next_idx+']" value="'+next_idx+'" /></td>';
19
- content += '<td><select name="test_info" id="select_test_info'+next_idx+'" data-native-menu="true">';
20
- content += '</select></td>';
21
14
 
22
- content += '<td><input type="text" name="test_d_name['+next_idx+']" value="" placeholder="名" /></td>';
23
- content += '<td><input type="text" name="test_address['+next_idx+']" value="" placeholder="住所" /></td>';
24
- content += '<td><button type="button" id="btn_del_test'+next_idx+'" class="deleteTest ui-btn ui-shadow ui-corner-all ui-btn-icon-left ui-icon-delete">削除</button></td>';
25
- content += '</tr>';
15
+ #再追記
26
- $('#test_tbody').append(content);
16
+ 毎回イベントリスナーをaddするのは面倒なのでselectと値を代入するtextは何かしらの
17
+ 関連性を使って代入するといいと思います。
27
18
 
19
+ ```javascript
20
+ $(document).on('change','select',function(){
28
- // selectの中身を足す
21
+ //changeしたselectが入っているtdから見て1つ右tdのinputに代入
29
- $('#select_test_info'+next_idx).append($('#select_test_info').children().clone(true));
22
+ $($(this).parents("td").eq(0)).nextAll().eq(0).children("input").eq(0).val("aaa");
23
+ //changeしたselectが入っているtdから見て2つ右のtdのinputに代入
24
+ $($(this).parents("td").eq(0)).nextAll().eq(1).children("input").eq(0).val("bbb");
25
+ });
30
- ```
26
+ ```
31
- こんな感じでしょうか…他にも色々サーバー側の記述がありますが都度変更してください。

1

対応追記

2018/01/16 04:45

投稿

sousuke
sousuke

スコア3830

answer CHANGED
@@ -1,2 +1,31 @@
1
1
  Smartyはよく存じ上げないのですがクライアント側のjavascriptで
2
- サーバーサイド(tpl)のコードを書いても解釈してもらえないと思います。
2
+ サーバーサイド(tpl)のコードを書いても解釈してもらえないと思います。
3
+
4
+ 追記
5
+ 実験はしていませんが…
6
+ ```html
7
+ <select name="test_info" id="select_test_info" data-native-menu="true">
8
+ ```
9
+ ここの中身をコピーするといいのではと見ました。もともとですがid="select_test_info"などが重複してます…
10
+
11
+ ```javascript
12
+ var content = '';
13
+ var next_idx = $('#test_tbody').children().length;
14
+ next_idx++;
15
+
16
+ // content += '{assign var=\'i\' value=0}';
17
+ content += '<tr>';
18
+ content += '<td><input type="radio" id="in_test_radio{$i}" name="test_radio['+next_idx+']" value="'+next_idx+'" /></td>';
19
+ content += '<td><select name="test_info" id="select_test_info'+next_idx+'" data-native-menu="true">';
20
+ content += '</select></td>';
21
+
22
+ content += '<td><input type="text" name="test_d_name['+next_idx+']" value="" placeholder="名" /></td>';
23
+ content += '<td><input type="text" name="test_address['+next_idx+']" value="" placeholder="住所" /></td>';
24
+ content += '<td><button type="button" id="btn_del_test'+next_idx+'" class="deleteTest ui-btn ui-shadow ui-corner-all ui-btn-icon-left ui-icon-delete">削除</button></td>';
25
+ content += '</tr>';
26
+ $('#test_tbody').append(content);
27
+
28
+ // selectの中身を足す
29
+ $('#select_test_info'+next_idx).append($('#select_test_info').children().clone(true));
30
+ ```
31
+ こんな感じでしょうか…他にも色々サーバー側の記述がありますが都度変更してください。