2011-07-08 15 views
0

ユーザーがボタンをクリックすると、その場で新しい入力テキストが作成されます。jquery on the fly新しい要素

2つの入力がオンザフライで作成されていると仮定します。

<input id="txtImageSource_1" type="text"> 
<input id="txtImageSource_2" type="text"> 

ここで問題を簡略化します。入力のIDを、その中にテキストを入力するときに表示する必要があります。この2つの要素は、即座に作成されました。

私は以下を試みましたが、うまくいきませんでした。

$('#' + $(this).attr('id')).live('keyup', function(){alert($(this).attr('id'))); 
      }); 

$('#' + $(this).attr('id')).live('keyup', function(){alert($(this).attr('id'))); 
       }); 

私が最初に$(この)このコードではどこから来ているかわからない、テキストボックス

$("#add_image").click(function() { 
var i = ($('p.fields').length); 
     $('<p class="fields" id="field_' + i + '"><input type="text" id="txtImageSource_' + i + '"/>"<input type="button" value="Delete" class="btnDelete" id="' + i + '"></p>').appendTo('#formelement'); 
    }); 
+0

あなたはテキストボックスを作成するurのコードを投稿できますか? – Chandu

+0

これらの要素を作成するために使用されているコードはどれですか?あなたは例を挙げることができますか? –

+0

閉じ括弧が多すぎます:* alert($(this).attr( 'id'))); * – Gal

答えて

1
$("#add_image").click(function() 
{ 
    var i = ($('p.fields').length); 

    $('<p class="fields" id="field_' + i + '"><input type="text" id="txtImageSource_' + i + '"/>"<input type="button" value="Delete" class="btnDelete" id="' + i + '"></p>').appendTo('#formelement'); 

    $("#txtImageSource_" + i).live('keyup', function() 
    { 
     // Do whatever you want to do 

     alert($(this).attr("id")); 
    }); 
}); 
0
 $("#add_image").click(function() { 
      var i = ($('p.fields').length); 
      $('<p class="fields" id="field_' + i + '"><input class="img" type="text" id="txtImageSource_' + i + '"/><input type="button" value="Delete" class="btnDelete" id="' + i + '"/></p>').appendTo($('#formelement')); 
      $('#txtImageSource_' + i).live("keyup", function() { 
       alert($(this).attr("id")); 
      }); 
      return false; 
     }); 
0

を作成しますしかし、それがonFocusまたはクリックバインディングからのものであれば、残りの部分を削除することができます。セレクタのように:

$(this).live('keyup', function(){alert($(this).attr('id'))); 
      }); 
関連する問題