JavaScript初心者です。
サブpage(診察予約のリンク先のhtml)で各フォーム(お問い合わせ・予約・ゲストブックなどを)を一つのhtmlにまとめたく、iframeもしくはinnerHTMLを使い、サブメニューでdisplay="none"切り替えなどで、各フォームを切り替えたいと作成し始めたものです。
サーバーサイドのCGIはKentさんのフリーCGIのClipMailやAjaxを使用する予定でおります。
ただ条件として、トップのコンテンツ内の「メール相談画像」ボタンからのリンク先はお問い合わせフォームで、通常の横メニューボタン(緑の)の診察予約ボタンからのリンク先は予約フォームがデフォルトとして表示されるようにしたいわけです。
【ご参照お願いします。】
http://miya-fc-2008.sakura.ne.jp/
たぶんjavascriptで条件式を用いてリンク先を振り分ければいいと思ったので、質問投稿させて頂きましたが、具体的にどういう条件式などで
書いていけばいいか分かりません。
アドバイス頂けると幸いです。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
どこまでの初心者かわからないのですが
理解できなかったらごめんなさい・・・
1.まず、リンクを以下のように書き換えます。
<a href="form.html?mail">←メール用リンク
<a href="form.html?appoint">←予約用リンク
※「?」以降の文字列やファイル名は適当に変えちゃってください
2.form.html(仮)のスクリプト部に以下を追加(外部ファイルでも可)
//ここから
document.body.onload=function(){//読み込みが終われば判定開始
if(location.search=="?mail"){//ファイル名の後に「?mail」が付いていれば
document.getElementById('mail').style.display="block";//「mail」フォームを表示
}
else
if(location.search=="?appoint"){//「?appoint」ならば
document.getElementById('appoint').style.display="block";
}
else{//それ以外・指示なしのときは
document.getElementById('default').style.display="block";
}
}
//ここまで
3.HTMLのフォーム部は以下のようにします
<form id="mail" style="display:none;">メールフォーム</form>
<form id="appoint" style="display:none;">予約用フォーム</form>
<form id="default" style="display:none;">その他フォーム</form>
これでなんとなくいけるはずです・・・
この回答への補足
15mmさま>
丁寧にご回答頂き、本当にありがとうございました。
ご回答内容の「1.まず、リンクを以下のように書き換えます。」
<a href="form.html?mail">←メール用リンク・・・
とは、index.htmlのコンテンツの中の「メール相談画像」にリンク
をはるのと、<a href="form.html?appoint">←予約用リンクは
通常の横メニューボタン(緑の)の診察予約ボタンにはればいいとの意味ですよね?
一度、さっそく自分で試してみている途中ですが、またお時間が許される時でいいので、ご回答頂けると幸いです。
No.3
- 回答日時:
だいぶ遅くなってしまいました。
すみません。方法は2つほど考えて参りました。
1.<noscript><form></noscript>のようにもうひとつ標準表示のフォームを「display:none;」を削除して配置する。
JS非対応・無効ブラウザではフォームの切り替えもできないわけですから、
他2つのファームも別ファイルで作成・リンクするしか切り替えの方法はないようです
2.<noscript><style></noscript>で非対応・無効ブラウザでのみのスタイル指定。
この方法では、正常に動作はしても文法的に問題があるのでお勧めできません^^;
(<noscript>は<body>内、<style>は<head>内に配置するものですので・・・)
↓でも一応やり方を↓
<noscript><style type="text/css"><!--
#default{display:block !important;}
--></style></noscript>
配置する場所は・・・どこでもいいです。どうせ文法無視したやり方なので。
(外部ファイルにして<link>でもいいです)
文章書いていて改めて思ったのですが、やっぱり1のほうがいいですかね
この回答への補足
15mm様>
JS非対応・無効時の方法、教えて頂きありがとうございました。
やはり#1の方法が正規で安全そうなので、さっそく試してみますね!
根気よく丁寧に教えて頂き、本当に分かりやすく感謝しております。
重ねてありがとうございました。
No.2
- 回答日時:
>#1の回答への補足
遅くなってすみません。
補足の内容のとおりでOKです。
私の勝手な解釈と実際にやりたいことが少しでも違えばまたご注文ください。
ちなみに#1の内容にはJavaScript無効・非対応ブラウザへの配慮は全く入れなかったのですが、
対処法は別に用意してあるのでしょうか?
もし無いのであれば、#1に少し付け足さないと
フォームが何も表示されないという苦情が出かねません
そちらのほうも必要ならば言ってください。
この回答への補足
15mm様>
ご回答頂き、本当にありがとうございます。
私は今まで、Jsの無効・非対応ブラウザへの配慮はまったく視野に
入れてなかったのですが、やはりフォームはに非表示になってしまうとさすがに痛いので、是非この機会に#1に関してで教えて頂けると、
幸いです。
またお時間が許される時に、宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- 病院・検査 18歳です。先週に泌尿器科に初めて行きました。初診だったのでインターネットで予約したのですか2回目は 5 2023/06/07 08:17
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Google Drive Googleフォームについて(至急) 2 2022/06/28 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
ジャバスクリプトについて。
-
①入力フォーム→②確認表示画面→③...
-
指定時間になったら、WEBサイト...
-
アップロードファイルの種類に...
-
スマホ上で、左右スワイプで次...
-
jQueryで同じクラス名のものを...
-
jsで質問です。 displayプロパ...
-
【Google Apps Script】「ライ...
-
階層別の組織図の自動作成について
-
特定の文字列を複数抜き出した...
-
セレクトを全て選択されていな...
-
二次元配列の全要素の全要素を...
-
読み込んだQRコードをフォーム...
-
初心者です。gulpでコンパイル...
-
セレクトボックスで配列を呼び...
-
Googleフォームで選択肢に応じ...
-
変数名をどのようにつけるのが...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
jsで質問です。 displayプロパ...
-
画面遷移を行わずに同一ページ...
-
Googleフォームで選択肢に応じ...
-
特定の文字列を複数抜き出した...
-
フロントエンドフレームワーク...
-
変数名をどのようにつけるのが...
-
【JS】selectでchangeした時の...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
指定時間になったら、WEBサイト...
-
Colorboxがうまく設置できません
-
二次元配列の中の各行の要素を...
-
読み込んだQRコードをフォーム...
-
IndexedDB を使ってファイルア...
-
HTMLで作った時報アプリが動き...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
①入力フォーム→②確認表示画面→③...
おすすめ情報