Javascript 动态生成的按钮,无效的表单控件,名称=';答案';

Javascript 动态生成的按钮,无效的表单控件,名称=';答案';,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我在将事件附加到动态生成的按钮时遇到问题。然而,在一些大多数解决方案声明此错误通常是由表单控件生成的之后。但是,在我的情况下,当按下我动态生成的按钮时,会生成并触发错误“名为='answer'的表单控件无效”: $("#BoxInner").append($("<button id='dynamicButton' class='btn btn-success' onclick='clickEvent()'>"+ "Button"+"</button>")); 在c

我在将事件附加到动态生成的按钮时遇到问题。然而,在一些大多数解决方案声明此错误通常是由表单控件生成的之后。但是,在我的情况下,当按下我动态生成的按钮时,会生成并触发错误“名为='answer'的表单控件无效”:

   $("#BoxInner").append($("<button id='dynamicButton' class='btn btn-success' onclick='clickEvent()'>"+ "Button"+"</button>"));
在chrome中运行此功能后,此方法仅适用于添加的第一个按钮。按预期删除第一个按钮后,它开始生成错误“clickEvent”在每次点击时添加一个数字计数,在阅读了许多关于表单错误的帖子后,我仍然不确定如何解决这个问题,因为按钮与HTML文档中的表单完全无关,随后将表单设置为不需要验证并不能解决“novalidate”属性的问题。但是请注意,如果删除附加的onclick事件,则不会触发错误


任何帮助都将不胜感激:)

这是因为事件侦听器是在页面加载时创建的

你应该这样做

$(wrapper_that_always_exists).on('click', the_freshly_added_element, function() {
    ...
});
在你的例子中,它是这样的

$('#BoxInner').on('click', '#dynamicButton', function() {
    ...
});

执行此操作时,
BoxInner
元素将始终侦听内部任何元素上的所有单击,无论是否初始创建,该元素具有id
dynamicButton

,这是因为事件侦听器是在页面加载时创建的

你应该这样做

$(wrapper_that_always_exists).on('click', the_freshly_added_element, function() {
    ...
});
在你的例子中,它是这样的

$('#BoxInner').on('click', '#dynamicButton', function() {
    ...
});
执行此操作时,
BoxInner
元素将始终侦听内部任何元素上的所有单击,无论是否初始创建,该元素具有id
dynamicButton
$(“#BoxInner”).append($(“+”按钮“+);//将此消息传递给clickEvent函数
功能点击事件(obj)
{
$(obj).remove();//像这样删除按钮
}

$(“#BoxInner”).append($(“+”按钮“+);//将此消息传递给clickEvent函数
功能点击事件(obj)
{
$(obj).remove();//像这样删除按钮
}