#過去ログをあたりましたが、自分で納得いく解答がなかったので質問します。
フォームのsubmitボタンにonClickでチェッカーなどの関数を与えた場合、
submitでフォーム内容を送信するのと、onClickで指定されている関数の
どちらが先に処理されるのでしょうか。
(一応、WindowsのIE、ネスケ共々、onClickの処理の後、submitされるようではあります)
function tasikame {
(フォームの内容チェック/中略)
alert("入力されていない項目があります")
}
例えば、このような関数をonClickで起動する場合、フォームに入力されていない
項目があると、警告されます。
この時、submitはどの環境でも起動しないで終わるのでしょうか。
それとも警告が起動した後、フォーム内容はsubmitされてしまうのでしょうか。
#分かりづらければ、補足しますのでどうぞよろしく。
No.1ベストアンサー
- 回答日時:
> 例えば、このような関数をonClickで起動する場合、フォームに入力されていない
> 項目があると、警告されます。
> この時、submitはどの環境でも起動しないで終わるのでしょうか。
> それとも警告が起動した後、フォーム内容はsubmitされてしまうのでしょうか。
この関数の書き方だと、警告のメッセージボックスが表示され、OK を押すと、フォームの
内容は submit されます。
イベントハンドラでは、false を返すことで、本来の動作をキャンセルすることができます。
ですから、期待する(であろう)動作をするためには、
function tasikame {
//フォームの内容チェック
...
if ( フォームの内容が正しくなければ ) {
alert("入力されていない項目があります");
return false;
} else {
return true;
}
}
というような書き方になります。
解答ありがとうございます。
面倒なのでなるべく文を短くしようと思ったのですが、
やはりfalseは返した方がいいんですね。
参考になりました。
No.2
- 回答日時:
送信前の入力チェックを行うのであれば、submitボタンのonClickではなくて、FORMのonSubmitで行うべきですよ。
<FORM name="xxx" … onSubmit="return tasikame()">
このようにすることで、例えばIEで、テキストボックス内でEnterキーを押された時に、チェックを通らないで送信されることがなくなります。
ちなみに、送信される/されないは、a-kumaさんの回答の通りですので、入力チェック用の関数から true または false を返すようにしましょう。
また、呼び出し元の onSubmit="" の中でも、上記例のように、関数の戻り値をそのまま return するようにして下さい。
解答ありがとうございました。
onClickよりonSubmitの方でやるんですね。
ついつい、Enterキーの事を忘れてしまっていました。
こちらも参考にして、頑張ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Javascript_submit()完了後に処理したい
JavaScript
-
onClickで関数呼出し後に、結果に応じてsubmitを実行する方法
JavaScript
-
submitするとなぜか2度実行する
JavaScript
-
-
4
htmlでsubmit送信時、actionより前に、scriptを動作させたい
Microsoft ASP
-
5
複数のsubmitボタンで押されたボタンを取得する方法
JavaScript
-
6
[Java] Edgeでのアドレスバー非表示について
JavaScript
-
7
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
8
JSPやサーブレットでSystem.out.println()などでコンソールに出力できますでしょうか?
Java
-
9
ループ処理の際、最後だけ,"をつけたくない"
Java
-
10
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
11
onclickが動作しない
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
dijit.form.ComboBoxについて
-
PDFフォームで条件つき金額を表...
-
onClickとsubmitの処理順序
-
Javascriptで同じ数字を2回打...
-
プルダウン 項目が多いので先頭...
-
return trueとreturn falseの用...
-
javascript による POST 送信時...
-
テキストボックスに入力された...
-
プルダウンメニューを表の中に...
-
VBSでブラウザ上のテキストボッ...
-
ラジオボタンの選択で解答・点...
-
追加ボタンを押した際に ok ボ...
-
netscapeでもinnerTextやinnner...
-
tableの任意行にfocusをあてる
-
value内に変数を入れたい
-
submitするとなぜか2度実行する
-
JavaScriptで特定のtdタグにcla...
-
VBScriptでHTMLのセレクトボッ...
-
全てのselect要素をデフォルト...
-
指定したタグを書き換えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onClickとsubmitの処理順序
-
文末の改行コードを削除したい
-
JSPとJavaScriptの連携について...
-
JQueryで2つのテキストフィー...
-
フォームの値が0だったら空白...
-
フィールドを有効(enabled?)に...
-
ASP エラーチェック VBScript
-
PDFフォームで条件つき金額を表...
-
テキストボックスのグレーアウト
-
Javascript 郵便番号の入力欄で...
-
テキストボックス入力を半角英...
-
フォームから入力すると、入力...
-
submit後、同じ入力欄に戻らせ...
-
条件により、リンク先に画面遷...
-
最初の入力を判断
-
2重でメール入力チェックをした...
-
テキスト入力フォームの値を画...
-
HTMLで入力したものを変数で扱...
-
javascriptで入力フォームが空...
-
Javascriptが機能せず原因が分...
おすすめ情報