Javascript jquery通过代码添加输入,并调用另一个函数bad quotes串联

Javascript jquery通过代码添加输入,并调用另一个函数bad quotes串联,javascript,jquery,html,Javascript,Jquery,Html,我正在做一个文本框,当用户失去焦点时动态创建另一个文本框 我可以创建第一个动态文本框,但第二个不起作用,因为jquery生成的html不起作用 jQuery function AddTextBox(idnewcontrol, container) { var htmlinner = "<input class='form-control' id='" + idnewcontrol + "' name='" + idnewcontrol + "' type='text' onb

我正在做一个文本框,当用户失去焦点时动态创建另一个文本框

我可以创建第一个动态文本框,但第二个不起作用,因为jquery生成的html不起作用

jQuery

function AddTextBox(idnewcontrol, container)
{
    var htmlinner = "<input class='form-control' id='" + idnewcontrol + "'    name='" + idnewcontrol + "' type='text' onblur='AddTextBox   ('"+idnewcontrol+"','" + container + "')'>";
   $('#' + container).append(htmlinner);
};
函数AddTextBox(idnewcontrol,容器)
{
var htmlinner=“”;
$('#'+容器).append(htmliner);
};
第一次使用模糊后生成的Html

<input class="form-control" id="PollOptions" name="PollOptions" type="text" onblur="AddTextBox(" polloptions','polloptionslist')'="">

尝试以下代码(将最后两个双引号转义为“”)即可:

 var htmlinner = "<input class='form-control' id='" + idnewcontrol + "' name='" + idnewcontrol + "' type='text' onblur=\"AddTextBox('"+idnewcontrol+"','" + container + "')\">";
var htmlinner=“”;
结果:

 <input class="form-control" id="aaa" name="bbbb" type="text" onblur="AddTextBox('cccc','dddd')">

您可以使用
live
功能,而不是使用
onblur
属性:

$('.form-control').live('blur', function() {
    var idnewcontrol = $(this).attr('id')+'stuff';

    var htmlinner = "<input class='form-control' id='" + idnewcontrol + "' name='" + idnewcontrol + "' type='text'>";

   $('#polloptionslist').append(htmlinner);
})
$('.form-control').live('blur',function(){
var idnewcontrol=$(this.attr('id')+'stuff';
var htmlinner=“”;
$(“#polloptionslist”).append(htmlinner);
})

您只需根据需要更改id和容器!

尝试像这样转义双引号\“我建议改为创建jQuery对象,因为您可以在可读性更高的代码中分配所有这些属性。但是,您是否意识到,这只会一次又一次地使用相同的ID和名称创建重复控件?