jQuery:委托多次添加输入字段

时间:2011-05-05 06:24:54

标签: jquery jquery-selectors

以下是链接:Demo link

单击“组”,然后单击“货币”。您将看到一个带有绿色“+”符号的表单。单击此绿色“+”时,将添加多个输入字段,而不是一个。

以下是点击“+”符号的代码。

Line#:178

jQuery('#input span.con').delegate('p a[id=add_field]', 'click', function(){ 


var Id = jQuery(this).attr('id');
Id = 1+ parseInt(Id); 

jQuery('#input span.con p span.text_field').append('<span class="text_field" id="'+ Id +'"><input type="text" name="pemails[]" class="text_field" /><a class="edit_field" name="delete" id="'+ Id +'" href=""><img src="'+base_url+'resource/images/fend/delete.png" border="0" /></a></span>');

返回false;

});

行#:472

jQuery('#input span.con').prepend('<p><label for="" class="label">Participent Email:</label><span class="text_field"><span class="text_field">Click here to add the data.<a class="edit_field" name="add_field" id="add_field" href=""><img src="'+base_url+'resource/images/fend/add.png" border="0" /></a></span><span class="text_field" id="1"><input type="text" name="pemails[]" class="text_field" /><a class="edit_field" name="delete" id="1" href=""><img src="'+base_url+'resource/images/fend/delete.png" border="0" /></a></span></span></p>');
    }

对于js文件参考:  文件名:wizard.js  行#:178  行#:472(通过javascript添加'+'符号)

有人可以指导我做错的地方以及如何纠正。

提前致谢

1 个答案:

答案 0 :(得分:1)

你不应该重复ids,永远不要。这可能会给你带来麻烦。

你给跨度和这一行中的a给出相同的id(Id var)(它们是数字的,不应该是!)

jQuery('#input span.con p span.text_field').append('<span ... id="'+ Id +'">...<a ... id="'+ Id +'" ...>...</a></span>');

我的建议是使用以下ID:

var aId = "a"+Id;
var spanId = "span"+Id;

所以你有:

jQuery('#input span.con p span.text_field').append('<span ... id="'+ spanId +'">...<a ... id="'+ aId +'" ...>...</a></span>');

希望这会有所帮助。干杯