2017-04-19 21 views
2

バニラJavaScriptを使用して、フォーム 'reCaptchaForm'を使用してフォームの送信を手動でトリガすると、フォームの送信ハンドラが呼び出されないという問題があります。以下のコードスニペットをご覧ください。jQueryフォーム送信ハンドラが呼び出されないときにコールバックが手動フォーム送信をトリガーする

私はコールバックを手動で送信しますが、これを実行するとサブミットハンドラは呼び出されません - フォームに 'submit'というタイプの<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; 
}); 

私はここに何かを明らかに欠けている推測しているが、私は理由を見ることができません私が理解しているように、提出ハンドラはここで呼び出されていません。

EDIT:これで、鐘が鳴りました。 https://stackoverflow.com/a/645556/691505 - しかし、私はプログラム的な提出をキャプチャする方法の私の問題を解決しません。

答えて

0

私は上記のeditで私自身の質問に答えたと思います。

本質的に - イベントは、ユーザによってアクティブにされたときにのみ発生します。コードによってアクティブ化されたときには起動しません。

関連する問題