質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2475閲覧

cloneしたテーブルのテキストボックスのmaxLengthを設定したい

bluescat

総合スコア16

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/08/30 02:49

お世話になります。
下記ソースの通り、Jsondデータの件数分、HTMLに記載したテーブルをcloneする処理を書きました。
しかしjs側のテキストボックスにmaxLengthを設定している処理がうまくいかないようで、
もし書き方に問題がありましたらご指摘をお願いいたします。
なお、currentValue.items[0].itemLengthには数値が入っていることとします。

HTML

1<div class="col-xs-12"> 2 <div class="whbase container-fluid"> 3 <table class="table table-bordered table-detail" id="infoValueTable"> 4 <tr> 5 <th class="col-sm-1">テーブル名称</th> 6 <th class="col-sm-1">情報項目名称</th> 7 <th class="col-sm-1">現在値</th> 8 <th class="col-sm-1">修正値</th> 9 </tr> 10 <tr id="infoValueRowBaseText"> 11 <td style="display: none; "class="value-item-id"></td> 12 <td class="value-table-name"></td> 13 <td class="value-item-name"></td> 14 <td class="value-current-value"></td> 15 <td class="value-new-value"> 16 <div class="form-horizontal"> 17 <div class="form-group"> 18 <div class="col-sm-7 form-inline input-append"> 19 <input type="checkbox" value="1"> 20 <input type="text" class="form-control" /> 21 </div> 22 </div> 23 </div> 24 </td> 25 </tr> 26 </table> 27 </div> 28</div> 29

javascript

1 var infoValueParamJsonData = {0}; 2 3 // 初期処理 4 var infoInitializeScript = function () { 5 6 var tbl = $('#infoValueTable'); 7 // tableをJsonDataの件数分、クローンする。 8 for (i = 0; i < infoValueParamJsonData.value.length; i++) { 9 var currentValue = infoValueParamJsonData.value[i]; 10 var row = $('#infoValueRowBaseText').clone(false); 11 row.attr('id', "infoValueRow" + i); 12 tbl.append(row); 13 row.children('.value-table-name').html(currentValue.items[0].tableName); 14 row.children('.value-item-name').html(currentValue.items[0].itemName); 15 row.children('.value-current-value').html(currentValue.items[0].itemValue); 16 row.children('.value-item-id').html(currentValue.items[0].itemId); 17 row.children('.value-new-value input[type="text"]').attr("maxLength", currentValue.items[0].itemLength); 18 } 19 tbl.find('#infoValueRowBaseText').remove(); 20 21 }; 22 23 // イベント定義 24 // ------------------------------------------------------------------------------------- 25 26 // -------------------------------------------------------------------------------------------------- 27 28 $(document).ready( function() { 29 infoInitializeScript(); 30 }); 31

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/08/30 03:02

「うまくいかない」とは「何をしたときに」「どうなると思って」「どうなったのか」をお書きください。また、row.children('.value-new-value input[type="text"]')は取得できていますか?
bluescat

2016/08/30 04:17

質問内容が曖昧で大変申し訳ございません。。 次回よりできる限り気を付けます。 ソースに記載の通りの方法で、maxLengthが設定できていなかったので質問させていただいておりました。
guest

回答1

0

ベストアンサー

今時間がなくて細かく書けないですが、findを使ってみてはどうでしょうか。

javascript

1row.find('.value-new-value input[type="text"]').attr("maxLength", currentValue.items[0].itemLength *1);

*1 は必要がなかったら削除してかまいません(数値化したいだけ)

投稿2016/08/30 03:40

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bluescat

2016/08/30 04:16

ありがとうございます。findで解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問