在 javascript createElement 上调用 .trigger

calling .trigger on javascript createElement

我正在实施一个 CSRF 解决方案,该解决方案会在提交所有表单之前自动将存储在会话中的令牌注入到所有表单中。我已经实施了 2 个解决方案来确保所有提交都得到处理

  1. 对于 ajax 提交,我实现了一个 jquery.ajaxPreFilter 方法,该方法在将令牌传递给 ajax 处理程序之前将其添加到数据属性。

  2. 对于其他表单,我使用 jquery.on('submit').

  3. 绑定到提交事件
  4. 对于通过 javascript 提交的表单,我已将 .submit() 调用更改为 .trigger('submit');

我们的代码中有一些 javascript 方法会在调用 form.submit() 之前使用 javascript document.createElement() 创建表单。我无法将它们更改为 form.trigger('submit'),因为 jquery 无法识别它们;我收到错误 "form.trigger is not a function".

我如何处理这些类型的表单提交来触发提交事件,以便我的绑定方法能够接收它?

我现在找到了解决办法,没想到这么简单。

而不是调用

form.submit();

我刚打电话

$(form).trigger('submit');