2011-07-08 62 views
0

一旦用戶點擊一個按鈕,它就會立即創建新的輸入文本。jquery on the fly新元素

讓我們假設這2個輸入是在飛行中創建的。

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

現在來簡化我的問題。當他們輸入文本時,我需要顯示輸入的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

你可以發佈代碼在哪裏創建文本框? – 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

我不知道,其中第一$(這)是從這個代碼來:

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

但如果它來自onFocus或點擊綁定,則可以消除其餘部分選擇器像這樣:

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