j查询表单提交处理程序在回调触发手动表单提交时未被调用



我遇到了一个问题,当我使用香草 JavaScript 手动触发带有类"reCaptchaForm"的表单提交时,我的表单的提交处理程序没有被调用,如下面的代码片段所示。

我有onReCaptchaSuccess回调,它将手动提交表单,但是当我这样做时,不会调用提交处理程序 - 当我在浏览器中使用具有"提交"类型的<button>原生提交表单时,它会起作用。

在我的表单所在的模板中:

<script type="text/javascript">
require(['crmpicco/coursedetails'], function(details) {
details.init();
});
function onReCaptchaSuccess(token) {
document.getElementsByClassName("reCaptchaForm")[0].submit();
}
</script>

我的 RequireJS 模块coursedetails.js

define('crmpicco/coursedetails', [
'jquery',
'intl-tel-input',
'jstz'
], function($) {
var CourseDetails = {
init: function() {            
this.initPhoneNumber();
},
initPhoneNumber: function() {
// ...some field cloning in here...
originField.closest('form').submit(function() {                
// this form submit handler is never envoked!
});
},
};
return CourseDetails;
});

我猜我在这里错过了一些明显的东西,但我不明白为什么这里没有调用提交处理程序,因为我的理解是这应该冒泡。

编辑:好的,我现在已经读到了这个敲响了铃铛。 https://stackoverflow.com/a/645556/691505 - 但它并不能解决我如何捕获编程提交的问题。

我想我在上面的编辑中回答了我自己的问题。

本质上 - 事件仅在用户激活时触发 -并且在被代码激活时不会触发

最新更新