質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1188閲覧

ページ離脱時の確認メッセージとdatepicker

mi37

総合スコア13

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/12/10 09:08

jQueryを利用して、入力項目に変更があった場合に他のページに行く場合にメッセージを表示するようにしているのですが、
datepickerの設定がしてある項目が、変更していないのにアラートを出してしまいます。

元々、datepickerの設定だけではアラートは出なかったのですが、
設定した項目に初期値をセットし、画面に表示されたときにその項目をクリックした後
カレンダーを選択しないままフォーカスを外すと、初期値が消える問題があったため、

調べたところ、初期値の設定で
$("#dateField").datepicker("setDate",getNowDate());
とすれば消えないので、その通りにやったところ、
消える問題は解消されましたが、
変更項目として識別されるようになってしまったようです。

消える問題とアラートされる問題の両方を解決できる方法はないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/12/11 00:29

beforeunloadを利用されているかと思いますが、そこも含めて再現可能なコード(HTML,JavaScript,CSS)を提示されないと回答は得られにくいかと思います。
x_x

2018/12/13 09:33

どのように変更をチェックしているのでしょうか?
mi37

2018/12/13 12:28

jquery-2.2.1.min.jsを利用し、その中の beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}} でやっているようです
x_x

2018/12/14 01:05

該当箇所がわからないのであれば、すべて提示したほうが回答が得られるかもしれません
guest

回答1

0

自己解決

日付のセットの後、
$(window).off('beforeunload');
を追加すると出来ました。

投稿2018/12/18 07:23

mi37

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/12/18 08:17

「入力項目に変更があった場合に他のページに行く場合にメッセージを表示する」機能自体が不要だったということでしょうか?
mi37

2018/12/18 08:36

いえ、それは必要です。日付のセットの後にこのロジックを入れることで一旦変更があったという状態がクリアされるようです。その後、入力していた場合はメッセージが出るようになりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問