回答編集履歴
1
修正
answer
CHANGED
|
@@ -1,1 +1,18 @@
|
|
|
1
|
+
# 原因理由
|
|
2
|
+
SUBMITはform actionに指定されたURLに送信するものです(未指定の場合は実行している自身)。
|
|
3
|
+
つまり送信先のプログラムは送信されたリクエストを以て再ロードされます。
|
|
4
|
+
再ロードされるので当然ながら「画面上のクリック」で動作するモーダルは初めの状態、
|
|
5
|
+
つまり上がってきていない状態のままになります。
|
|
6
|
+
|
|
7
|
+
onclickにfalseを指定したところでsubmitのイベントが止められるわけではありませんし、
|
|
8
|
+
そもそも送信されないのでPHPは実行されません。
|
|
9
|
+
|
|
10
|
+
# 対策
|
|
11
|
+
ボタンのクリックイベントにて[Event.preventDefault()
|
|
12
|
+
](https://developer.mozilla.org/ja/docs/Web/API/Event/preventDefault)で送信無効にし
|
|
1
|
-
Ajaxを使ってください。
|
|
13
|
+
Ajaxを使ってチェックを行ってください。
|
|
14
|
+
|
|
15
|
+
Ajaxを使うので当然ながらPHPによるリダイレクトはできません。
|
|
16
|
+
チェック結果を以てSUBMIT実行するのもあまりよくありませんので、
|
|
17
|
+
Ajax内でチェックし、エラーあればエラーだけ返し、エラーなければ本来の処理を行い「OK」だけ返して
|
|
18
|
+
その結果次第で、エラーをJavaScriptでモーダル内に表示するか、JavaScriptでリダイレクトするかを切り分けてください。
|