一回も披露したことのない豆知識

あるjspファイルがありまして、そこで入力フォームがあるとします。その入力フォームにて、送信ボタンをクリックした際、空白で送信することを防ぐダイアログ(値を入力して下さい など)を出します。それと同時に、「送信しても宜しいですか?」というような、OKとキャンセルを選択させるダイヤログも出します。要するに、先に空白であるかどうかを判定し、その条件を満たした時に、送信するかどうかのダイヤログを出したいのです。どのように記述すれば良いのでしょうか?ちなみに、Strutsのフレームワークを使用しています。

onclick="javascript:if(confirm('送信しても宜しいですか?')){do(Form, 'commit')} return false;"

このように記述すると、送信するかどうかの選択ダイヤログは出るのですが、これから、どうやって空白を判断させるのが分からないです。具体的な記述方法を教えてください!!やっぱり、入力フォームのnameを使うんですかね?

A 回答 (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/str …
の「4.1.JavaScriptで入力チェック」のように、空白送信の場合にアラートを出すスクリプトは標準装備のようです。

(2)
http://muimi.com/j/jakarta/struts/struts7.html
あたりを見るとscriptを直接書き込むことも出来るようですので、任意のスクリプトを書いておいて
<html:form action="xx" onsubmit="return スクリプト名(this)">
で動かせるのではないかと思うのですが……
    • good
    • 0
この回答へのお礼

再び回答、有難う御座いました。

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

お礼日時:2004/10/16 13:13

>お答えしてくれた記述は、Strutsフレームワークを使用してる場合、通用しないですよね?



というのがちょっと悩みます。
サーブレットでフォワードするJSPを指定して表示すると思うので吐き出される内容はサーバ上で処理されたHTMLになると思います。

そこには通常のHTMLはもちろん、JavaScriptも使えると思うのですがいかがでしょうか。

この回答への補足

回答有難う御座いました。
私の説明の仕方が悪かったようですね。すみません。

>サーブレットでフォワードするJSPを指定して表示すると思うので吐き出される内容はサーバ上で処理されたHTMLになると思います。

勿論その通りです。ただ、記述の仕方が多少違うんですよ。LancerVIIさんはStrutsというのはご存知ですか?私の質問部分にダイアログのソースの一部を載せてますが、見慣れない書き方をしているように思えませんか?例えば、

javascript:if

のようなif文の書き方などです。私はその記述の方法が分からないんです。

補足日時:2004/10/15 09:45
    • good
    • 0

キーボードのエンターで送信する人もいますから、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 ==""))
のように並べてもいいですし、ひとつずつチェックして空欄の場所を配列に記録し、配列が空だったらダイアログなしで送信、配列が空でなかったら「こことここが入力されてませんよ」とアラートを出す、という方法もありかとおもいます。

この回答への補足

回答有難う御座いました。

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

補足日時:2004/10/15 08:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!