2016-09-22 36 views
-4

動的な入力を追加したいと思います。jqueryを使用して入力の入力時に新しい入力をhtmlドキュメントに追加するには?

入力が既に作成されていて、誰かが何かを書いていると、その下に新しい入力が追加され、新しく作成された入力に何か書き込むと、同じjqueryが呼び出され、に。 (アドレスとメールのGoogleの連絡フォームと同じです)

どうすればいいですか?

私はこれを試してみましたが、それは各キー入力の新しい入力のために私を与えているとも、新しく作成された入力のためにそれはあなたがにイベントハンドラをアタッチする.on()を使用する必要があります

var counter = 2; 
 
$("input[id^='textbox']").keypress(function() { 
 
    if (counter>10){ 
 
    alert("Only 10 textboxes allow"); 
 
    return false; 
 
    } 
 

 
    var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter); 
 

 
    newTextBoxDiv.after().html('<label>Textbox #'+ counter + ' : </label>' + 
 
          '<input type="text" name="textbox' + counter + 
 
          '" id="textbox' + counter + '" value="" >'); 
 
    newTextBoxDiv.appendTo("#TextBoxesGroup"); 
 
    counter++; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='TextBoxesGroup'> 
 
    <div id="TextBoxDiv1"> 
 
    <label>Textbox #1 : </label> 
 
    <input type='textbox' id='textbox1' > 
 
    </div> 
 
</div> 
 

+0

あなたのJavaScript、またはHTMLに新しいかもしれませんが、あなたは*、その後、最初に独自のソリューションを実装で信頼できる試みを作るために必要と*あなたは問題がある場合は、戻ってきてあなたを表示"* [MCVE] *"は、あなたが抱えている問題をコードし、説明します。私たちはあなたの問題を喜んでお手伝いしますが、私たちにあなたのためにそれをするように求めているのは、私たちがここにいるものではありません。また、これがどのように実装されるかについての指針が必要な場合は、チュートリアル、ライブラリまたはプラグインのオフサイトリソースを提供しない、または推奨しないため、これは話題にはなりません。 –

+0

何か試してから質問してください。 – Mohammad

答えて

1

が動作していません新しい入力。また、入力テキストの親がlast-childかどうかを確認し、新しい行を追加します。

$(document).on("keyup change", "input[id^='textbox']", function(){ 
 
    if ($(this).parent().is(":last-child") && $(this).val() != ""){ 
 
     var index = $(this).parent().index() + 2; 
 
     $("#TextBoxesGroup").append('<div id="TextBoxDiv'+index+'"><label>Textbox #'+index+' : </label><input type="textbox" id="textbox'+index+'" ></div>'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id='TextBoxesGroup'> 
 
    <div id="TextBoxDiv1"> 
 
     <label>Textbox #1 : </label> 
 
     <input type='textbox' id='textbox1' > 
 
    </div> 
 
</div>

+0

素晴らしいです。しかし、私が生成されたテキストボックスに行くためにタブを押している場合、それはもう一度新しいテキストボックスを生成します。 –

+0

@MahekShah良い言及。一定。 – Mohammad

+0

ありがとう..それは今完全に動作:) –

関連する問題