• 締切済み

ダイアログの出し方について

あるjspファイルがありまして、そこで入力フォームがあるとします。その入力フォームにて、送信ボタンをクリックした際、空白で送信することを防ぐダイアログ(値を入力して下さい など)を出します。それと同時に、「送信しても宜しいですか?」というような、OKとキャンセルを選択させるダイヤログも出します。要するに、先に空白であるかどうかを判定し、その条件を満たした時に、送信するかどうかのダイヤログを出したいのです。どのように記述すれば良いのでしょうか?ちなみに、Strutsのフレームワークを使用しています。 onclick="javascript:if(confirm('送信しても宜しいですか?')){do(Form, 'commit')} return false;" このように記述すると、送信するかどうかの選択ダイヤログは出るのですが、これから、どうやって空白を判断させるのが分からないです。具体的な記述方法を教えてください!!やっぱり、入力フォームのnameを使うんですかね?

みんなの回答

回答No.3

#1です。 >Strutsフレームワークを使用してる場合、通用しないですよね? あ、失礼しました。勘違いして見当違いのことを言っていました。質問をよく読んでいなくて回答してしまい、お恥ずかしいです。 調べてみましたが、Strutsフレームワークにはまったく詳しくないので、以下見当違いでしたら笑ってください。 (1)http://muimi.com/j/jakarta/struts/struts6.html の「3.JSPでJavascriptチェックをONにする」や http://www.fk.urban.ne.jp/home/kishida/kouza/struts.html の「4.1.JavaScriptで入力チェック」のように、空白送信の場合にアラートを出すスクリプトは標準装備のようです。 (2) http://muimi.com/j/jakarta/struts/struts7.html あたりを見るとscriptを直接書き込むことも出来るようですので、任意のスクリプトを書いておいて <html:form action="xx" onsubmit="return スクリプト名(this)"> で動かせるのではないかと思うのですが……

noname#15844
質問者

お礼

再び回答、有難う御座いました。 参考サイトは色々と書かれていますね~。直接、私のやりたいことが書かれてるわけではないですが、プラスにはなると思います。どうもでした^^

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

>お答えしてくれた記述は、Strutsフレームワークを使用してる場合、通用しないですよね? というのがちょっと悩みます。 サーブレットでフォワードするJSPを指定して表示すると思うので吐き出される内容はサーバ上で処理されたHTMLになると思います。 そこには通常のHTMLはもちろん、JavaScriptも使えると思うのですがいかがでしょうか。

noname#15844
質問者

補足

回答有難う御座いました。 私の説明の仕方が悪かったようですね。すみません。 >サーブレットでフォワードするJSPを指定して表示すると思うので吐き出される内容はサーバ上で処理されたHTMLになると思います。 勿論その通りです。ただ、記述の仕方が多少違うんですよ。LancerVIIさんはStrutsというのはご存知ですか?私の質問部分にダイアログのソースの一部を載せてますが、見慣れない書き方をしているように思えませんか?例えば、 javascript:if のようなif文の書き方などです。私はその記述の方法が分からないんです。

回答No.1

キーボードのエンターで送信する人もいますから、onclickイベントを使うより、formのonsubmitを使ったほうがいいと思いますよ。 私は大体このようにしています。 <head>内 <script type="text/javascript"> <!-- function Check(Form) { if(Form["入力欄1"].value == "") { if(confirm("入力欄1が空白ですが、送信してもよろしいですか?")) { return true; } else { return false; } } else { return true; } } // --> </script> <body>内 <form action="***" onsubmit="return Check(this)"> <input type="text" name="入力欄1"> <input type="submit" value="送信"> </form> Formのnameを使ってもいいですが、thisを使うと記述が短くなるので便利です。 空欄チェックしたい部分が複数ある場合は、 if((Form["入力欄1"].value =="")||(Form["入力欄2"].value =="")) のように並べてもいいですし、ひとつずつチェックして空欄の場所を配列に記録し、配列が空だったらダイアログなしで送信、配列が空でなかったら「こことここが入力されてませんよ」とアラートを出す、という方法もありかとおもいます。

noname#15844
質問者

補足

回答有難う御座いました。 お答えしてくれた記述は、Strutsフレームワークを使用してる場合、通用しないですよね?基本的に、私が記述したソースを少し変えるだけだと思うのですが・・・・どうでしょうか?

関連するQ&A