Javascript 将动态窗体恢复到其初始状态
我正在从事传统的jQuery项目。有一个搜索过滤器表单,它是在用户与之交互时动态构建的。动态构建意味着一些HTML元素select、input和单选按钮是通过使用现有的select动态创建并插入表单的。已经有一些功能允许用户删除从起始页加载中创建和存在的所有元素 现在我需要将表单状态完全恢复到页面加载时的状态。通过将初始表单状态克隆为具有actual.parentNode.replaceChildinitial、actual的常量,可以轻松实现该功能。问题是我丢失了现有表单元素的所有事件处理程序。表单只是停止了交互Javascript 将动态窗体恢复到其初始状态,javascript,jquery,Javascript,Jquery,我正在从事传统的jQuery项目。有一个搜索过滤器表单,它是在用户与之交互时动态构建的。动态构建意味着一些HTML元素select、input和单选按钮是通过使用现有的select动态创建并插入表单的。已经有一些功能允许用户删除从起始页加载中创建和存在的所有元素 现在我需要将表单状态完全恢复到页面加载时的状态。通过将初始表单状态克隆为具有actual.parentNode.replaceChildinitial、actual的常量,可以轻松实现该功能。问题是我丢失了现有表单元素的所有事件处理程序
是否有人可以建议一种用于实现上述要求的方法?尝试使用jquery重新加载表单:
$( "#form" ).load(window.location.href + " #form" );
您还应该将事件处理程序更改为委托事件处理程序,而不是使用
$("#element").on("click", function() {...});
你应使用:
$(document).on("click", "#element", function() {...});
因此新元素和重新加载的元素与这些事件处理程序一起工作。您只需将特定类添加到您创建的所有元素中,然后当您要重置表单时,只需使用: $。您的\u自定义\u类\u在此处。删除
要删除所有创建的元素,您需要向我们显示一些代码。请将表单事件处理程序更改为委托事件处理程序,或在还原表单后重新绑定它们