前提・実現したいこと
現在Ruby on Railsを用いてアプリの開発をしています。その中で特定のページでのみページ離脱防止のためにJavaScriptでアラートを表示したいです。その特定のページは入力フォームでsubmitでデータを送信する時にはアラートは表示したくないです。
発生している問題・エラーメッセージ
ウィンドウの検証で確認してみたところ下記のエラーが発生していました
Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') at Object.<anonymous> (splash.js:27) at Object../app/javascript/splash.js (splash.js:30) at __webpack_require__ (bootstrap:19) at Module../app/javascript/packs/application.js (application.js:11) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83 (anonymous) @ splash.js:27 ./app/javascript/splash.js @ splash.js:30 __webpack_require__ @ bootstrap:19 ./app/javascript/packs/application.js @ application.js:11 __webpack_require__ @ bootstrap:19 (anonymous) @ bootstrap:83 (anonymous) @ bootstrap:83
現状、全てのページでアラートが表示されてしまいます。またsubmitでデータを送信する時にもアラートが表示されてしまいます。
該当のソースコード
JavaScript
1var onBeforeunloadHandler = function(e) { 2 e.returnValue = 'ちょっと待ってくださいよ。まだダメですよ。'; 3}; 4// イベントを登録 5window.addEventListener('beforeunload', onBeforeunloadHandler, false); 6 7form.addEventListener('submit', function(e) { 8 // イベントを削除 9 window.removeEventListener('beforeunload', onBeforeunloadHandler, false); 10}, false);
試したこと
あるサイトを参考に実装を進めてきましたがソースの内容を理解できなかったので解決が困難な状態です。
解決方法、ソースの内容を教えていただけると幸いです。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
Ruby on Rails 6.0
回答1件
あなたの回答
tips
プレビュー