

パスワード認証フォームをつくりたいです。(htmlを見てバレてもいいです)
イメージとしては…
────────────────────────────
┌──────────────────────┐
│パスワードを入力してください(placeholder) │[送信]
└──────────────────────┘
パスワードが違います(赤文字) ←間違ったときに表示
────────────────────────────
そして正しいパスワードを入力するとサイトへリンク
リンク先のURLはパスワードと同じではありません。
まだまだ初心者でうまく説明できない部分も多くありますがよろしくお願いします。
No.2ベストアンサー
- 回答日時:
<form name=certifier>
<input type=password name=p required placeholder="パスワードを入力してください"><!-- Enter を押すと送信される -->
<button type=submit>送信</button>
</form>
<script>
// パスワードとリンク先 URL の設定
var LINKS = [
_ {pw:"pass1", url:"secret.html"},
_ {pw:"pass2", url:"himitsu.html"},
];
window.addEventListener('load', function(ev) {
_ var form = document.forms["certifier"];
_ // 送信されたパスワードに従い URL を変える
_ form.addEventListener('submit', function(event) {
_ _ event.preventDefault(); // 実際には送信させない
_ _ var p = form.elements['p'];
_ _ var link = LINKS.filter(x => x.pw == p.value);
_ _ if (link.length == 0) {
_ _ _ // フォーム検証 API を使って問題をお知らせ
_ _ _ p.setCustomValidity("パスワードが違います");
_ _ _ p.reportValidity();
_ _ _ return;
_ _ }
_ _ location.href = link[0].url; // 送信ではなく単純リンク
_ }, false);
_ // 入力があったら、表示中のお知らせを消す
_ form.addEventListener('input', function(event) {
_ _ event.target.setCustomValidity("");
_ }, false);
}, false);
</script>
うまくいきました!!!
ここまで丁寧に書いていただき本当に感謝感激です。
いつか一人でこんなhtmlをかけるようになるため頑張ります。
今回は本当にありがとうございました。
No.1
- 回答日時:
わかりやすいサイトへのリンクありがとうございます。
誠に恐縮なのですがリンクのページ「Q&A 4」を採用しようと思うのですが、OKを押すだけでなく、Enterを押すだけで送信できるようにしたいです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(セキュリティ) Facebookアカウントを乗っ取られ、ログインも出来ずパスワードの再設定もできずに困っている 2 2023/02/17 14:24
- PHP php ログイン 1 2022/11/01 00:24
- その他(メールソフト・メールサービス) Thunderbirdのメール送信ができません 1 2022/10/28 16:54
- Instagram 本当に困っています 1 2023/03/18 09:11
- iPhone(アイフォーン) iPhone7 標準メールアプリでicloud.com のメール設定が出来ない。助けてください! 3 2022/08/17 13:04
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- ハッキング・フィッシング詐欺 googleに保存されたパスワードが間違っている、、、 1 2022/06/22 20:50
- その他(セキュリティ) AppleID、パスワードについて教えてください。 今日携帯を触ってる時に何度も、AppleIDのパ 1 2022/04/16 08:27
- LINE LINEスタンプを購入したくて、コインをチャージしようとしたら、顔認証の後に画像のようなものが出てき 1 2022/11/18 19:48
- Netflix Netflixのパスワード変更についてですが、2ヶ月前にdocomoの爆アゲというものから契約しまし 2 2023/06/23 07:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
テーブルの行を折りたたみたい...
-
ホームページの制作について教...
-
角丸画像の背景色を透明にした...
-
GoogleSearchControlにホームペ...
-
iPhoneで HTMLファイルを閲覧
-
HTML/CSSを使って写真のような...
-
HTMLでクロス抽出したい
-
レスポンシブで困っています・・
-
WEBページを強制的に横画面で見...
-
アコーディオンメニューが思う...
-
テーブルタグのセルの幅の一部...
-
<input>のstep属性に違反する入...
-
レイアウトが異なる別のワーク...
-
align-itemsの使い方。本が間違...
-
Dreamweverは今も主流なんです...
-
動画と画像&タイトル2列を横並...
-
完全素人がノーコードWEB制作の...
-
YouTubeの動画を自分のホームペ...
-
htmlが簡単に作成できるアプリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitをボタン以外にするには
-
フォーム要素以外にもname属性...
-
1アクションでPOST・GET、両方...
-
リンクをクリックした時にform...
-
URL パラメータを使ってフォー...
-
長文のmailtoの使い方
-
フォームのテキストエリアをク...
-
mailtoについて
-
type="hidden"を使って時刻を送信
-
送信ボタン押下時に値が未入力...
-
フォームからsubmitをした後再...
-
submitの処理の後別の画面を表...
-
チェックボックスにチェックを...
-
</form>タグを使用すると強制的...
-
Enterキーでフォームの入力フィ...
-
タブキーでなくエンターキーで...
-
スマホやガラケーに使える簡易...
-
FlashMXについて
-
Firefoxで参照ボタンのURL入力...
-
UTF-8 コードでのmailtoの文字化け
おすすめ情報