一旦用户点击按钮,它就会动态创建新的输入文本。
让我们假设这两个输入是即时创建的。
<input id="txtImageSource_1" type="text">
<input id="txtImageSource_2" type="text">
现在简化我的问题。我需要在输入文本时显示输入的id。这些2个元素已经动态创建。
我尝试了以下但不起作用。
$('#' + $(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 :(得分: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") );
});
});
答案 1 :(得分: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;
});
答案 2 :(得分:0)
我不确定此代码中第一个$(this)的来源:
$('#' + $(this).attr('id')).live('keyup', function(){alert($(this).attr('id')));
});
但是如果是来自onFocus或点击绑定,你可以像这样消除选择器的其余部分:
$(this).live('keyup', function(){alert($(this).attr('id')));
});