

パスワード認証フォームをつくりたいです。(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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンクをクリックした時にform...
-
submitをボタン以外にするには
-
長文のmailtoの使い方
-
htmlのフォームのチェックボッ...
-
formタグのactionパラメータで...
-
</form>タグを使用すると強制的...
-
イメージボタンでクリックしたx...
-
フォーム要素以外にもname属性...
-
リロード時にも<input type="re...
-
同じnameのhiddenで別々の内容...
-
【html】)パスワード認証フォー...
-
送信ボタン押下時に値が未入力...
-
mailtoについて
-
お問い合わせフォームの送信後...
-
複数のフォームを一括で送信す...
-
1アクションでPOST・GET、両方...
-
formタグのaction属性
-
1つのformで複数のactionを実...
-
JavaScript 超初心者です。 Doc...
-
親ページからインラインフレー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitをボタン以外にするには
-
フォーム要素以外にもname属性...
-
1アクションでPOST・GET、両方...
-
長文のmailtoの使い方
-
submitの処理の後別の画面を表...
-
送信ボタン押下時に値が未入力...
-
メールフォームの送信ボタンが...
-
リンクをクリックした時にform...
-
リロード時にも<input type="re...
-
mailtoについて
-
type="hidden"を使って時刻を送信
-
複数のフォームを一括で送信す...
-
チャットフォームの悪用
-
Cookieの設定方法がわからない。
-
アンケートのページを作ろうと...
-
tableにformを配置したい。
-
URL パラメータを使ってフォー...
-
メールフォームの作り方で質問です
-
フォームからsubmitをした後再...
-
GETをPOSTに変更したところ 送...
おすすめ情報