2017-04-19 48 views
2

我有一个问题,当我手动触发使用vanilla JavaScript作为类的“reCaptchaForm”表单提交表单时,我的表单提交处理程序未被调用在下面的代码片段中。当回调触发手动表单提交时,jQuery表单提交处理程序不会被调用

我有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 - 但它不能解决我如何捕获程序提交的问题。

回答

0

我想我回答了我自己在edit上面的问题。

基本上 - 事件仅在用户激活时触发 - ,并且在通过代码激活时不触发。

相关问题