2012-03-26 7 views
0

私はdiv id="txtbx"と言うdivを更新しました。このdivの中にテキストボックスを挿入する必要があります。しかし、テキストボックスは、私のページのチェックボックスの数と同じでなければなりません。だから私はjqueryでテキストボックスonflyを作成

$("#checkboxid").find("input[type=checkbox]").each (function(index) 
{ 
    //code to insert textboxes 
}); 

としてチェックボックスをループしています。しかし、私は、各チェックボックスのためにこれらのテキストボックスを挿入する方法がわからないです。私はappend().を使ってみましたが、それはdiv(txtbx)を更新するのではなく、テキストボックスを追加します。

+1

http://jsfiddle.net/を作成するのは良いアイデアかもしれませんが、あなたがしようとしていることがそれほど難しくありませんが、私はあなたが何であるか把握できません今行っている。 –

答えて

2

むしろ各チェックボックスをループよりも、あなたが最初にそれらを数える必要があります。

var num_boxes = $('#checkboxid').find('input[type="checkbox"]').length; 
for(var i = 0; i < num_boxes; i++) 
{ 
    var this_box = $('<input type="text" name="textbox_' + i + '" />'); 
    $('#txtbx').append(this_box); 
} 
+0

それを追加するのではなく、htmlを挿入する方法はありますか?この変数htmlは、入力タグhtmlの配列になり、div idに( '#txtbx')。html(input_html);と入力します。これはvar input_html = html + です。 – rubyist

+0

私はあなたがそれをしたいと思う理由を理解していませんか?この変数は 'input '要素のHTMLマークアップの配列ではありません。単にHTMLの連結文字列にすぎません。 'append()'ではなく、なぜこのメソッドを使う必要があると思うのか説明できますか? – BenM

+0

はい。私が必要とするのは、htmlの連結文字列です。なぜなら、私のチェックボックスがドロップされるたびに追加されると、これらのテキストボックスがそのdivに追加されるからです。むしろ、そのdivを更新する必要があります。 – rubyist

0

あなたは

$('#checkboxid').find('input[type=checkbox]').each(function(index) 
{ 
    var text_box = $('<input>', { type : "text", name="textbox_"+index}); 
    $('#txtbx').append(text_box); 
}); 

を行う必要がありますまた、あなたがここに同じコンマタイプ

$('#checkboxid") 
を使用しなければならないことに注意してください
関連する問題