- ベストアンサー
Flashでフォームの記入漏れチェック及び確認画面
お世話になります。 現在Flashを使ってメールフォームを作成しているのですが、 記入漏れのチェック及び確認画面の表示の仕方で詰まっております。 CGIにデータを渡す前にFlashのみでこのような事をするのは 不可能なのでしょうか? まだまだ、勉強中な身でありますのでお知恵をお借りしたく 質問させて頂きました。 FlashMX2004を仕様しております。 どうぞ、よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
何がおわかりにならないのでしょうか??? 深く考えず, 単純に普通に, if文 で文字列を判定すれば良いだけだと思いますが。 例えば「○○」というインスタンス名を付けたテキスト入力のテキストフィールドがあったとします。 そのテキストフィールド 「○○」が未入力である場合, --------------------------------- // もしテキストフィールド「○○」の記入が空白であれば if (○○.text == "") { ココに「何かをする動作」を書く } --------------------------------- と,これだけの判定をすれば良いだけだと思います。 ========================================= 回答は以上で終わっていますが, 「何かをする動作」 は場合によって変わりますよね。 つまり「何をどうしたいか」によって変わります。 以下では,その一例(ほんの一例に過ぎない)を補足します。 ムービー全体が2フレームで, 下の図↓のようになっていたとします。 フレーム1 の階層構造は次のようになっているということです。 _root ├simei_txt(氏名入力テキストフィールド) ├mail_txt(メールアドレス入力テキストフィールド) ├syouhin_txt(商品名入力テキストフィールド) ├kosuu_txt(商品個数入力テキストフィールド) └sousin_btn(送信ボタン) フレーム2 の階層構造は次のようになっているということです。 _root ├message_txt(エラーメッセージ表示用テキストフィールド) ├ok_btn(「OK」ボタン) │……………… ├simei_txt(氏名入力テキストフィールド) ├mail_txt(メールアドレス入力テキストフィールド) ├syouhin_txt(商品名入力テキストフィールド) ├kosuu_txt(商品個数入力テキストフィールド) └sousin_btn(送信ボタン) ※ 「simei_txt」「mail_txt」「syouhin_txt」「kosuu_txt」「message_txt」 これらは全て テキストフィールド の "インスタンス名" です。 "変数名" ではありません。 「sousin_btn」「ok_btn」もボタンのインスタンス名です。 ※ 「simei_txt」「mail_txt」「syouhin_txt」「kosuu_txt」 は テキスト入力 のテキストフィールドです。 「message_txt」は ダイナミックテキスト のテキストフィールドです。 要するに, 「テキストフィールドのどれかに未記入のものがあれば, フレーム2 に進ませる。」 ただそれだけのものです。 この場合, ActionScriptレイヤーの フレーム1 の 空白キーフレーム には 次のように書きます。 ------------------------------------ // とりあえず再生停止 stop(); // 「sousin_btn」ボタンクリック時の動作を定義 sousin_btn.onRelease = function():Void { // もし「simei_txt」が空白であれば if (simei_txt.text == "") { // フレーム2 に行って gotoAndStop(2); // 「message_txt」に「氏名が未記入です!」 を表示 message_txt.text = "氏名が未記入です!"; // もし 「mail_txt」が空白であれば } else if (mail_txt.text == "") { trece("aaa"); // フレーム2 に行って gotoAndStop(2); // 「message_txt」に「メールアドレスが未記入です!」 を表示 message_txt.text = "メールアドレスが未記入です!"; // もし 「syouhin_txt」が空白であれば } else if (syouhin_txt.text == "") { // フレーム2 に行って gotoAndStop(2); // 「message_txt」に「商品名が未記入です!」 を表示 message_txt.text = "商品名が未記入です!"; // もし 「kosuu_txt」が空白であれば } else if (kosuu_txt.text == "") { // フレーム2 に行って gotoAndStop(2); // 「message_txt」に「商品の個数が未記入です!」 を表示 message_txt.text = "商品の個数が未記入です!"; // 空白のテキストフィールドがなければ } else { // ★ココに CGI にデータを渡すスクリプトを書く } }; ------------------------------------ そして, ActionScriptレイヤーの フレーム2 の 空白キーフレーム には 次のように書きます。 ------------------------------------ // 「ok_btn」ボタンクリック時の動作を定義 ok_btn.onRelease = function():Void { // フレーム1 に戻る gotoAndStop(1); }; ------------------------------------ (ActionScript2.0 Flash MX 2004 以上で使用可能。) 上記のようにするのが1つの方法です。 同じことをするのであっても,スクリプトは当然,違う書き方もできます。 また方法は無数にありますから,この方法と同じようにする必要はありません。 あくまでも単なる 一例 です。
お礼
ご丁寧なご説明を頂きまして誠に有難うございます。 お陰さまで、何とかクリアできました。 難しく考えすぎていたようです(汗 本当に有難うございました。