私はこのようなコードを持っています
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#main_form").submit(function(){
alert("submitting");
});
$("#main_form").on("submit", function(){
alert("ON submitting");
});
$("#lnk").click(function(){
//$("#main_form").submit(); //when submitting like this - event is triggered
document.getElementById("main_form").submit(); //no submitting alerts are triggered
});
});
</script>
<h4><?php echo time(); ?></h4>
<form id="main_form" action="">
<input type="text" value="x"/>
<input type="submit" value="submit-btn"/>
</form>
<a id="lnk" href="#">test submit js</a>
送信ボタンをクリックすると、2 つのアラートが発生するため、onsubmit イベントがトリガーされますが、リンク #lnk をクリックすると、プレーンな js から送信する必要があります。
document.getElementById("main_form").submit();
フォームの送信のみを受け取りますが、アラートはありません。しかし、jquery経由で送信するコメントを外すと
$("#main_form").submit();
アラートが再び表示されます。それがなぜなのか、誰か説明してもらえますか?
PSプレーンjsでフォームを送信するレガシーコードがあり、変更したくないので、onsubmitイベントをバインドしてカスタム関数でいくつかのチェックを実行することにしましたが、上記のような問題が発生しました