[解決済み] HTML5フォームの必須属性。カスタムバリデーションメッセージを設定しますか?
2022-03-25 11:28:10
質問
以下のようなHTML5フォームがあります。 http://jsfiddle.net/nfgfP/
<form id="form" onsubmit="return(login())">
<input name="username" placeholder="Username" required />
<input name="pass" type="password" placeholder="Password" required/>
<br/>Remember me: <input type="checkbox" name="remember" value="true" /><br/>
<input type="submit" name="submit" value="Log In"/>
現在、両方とも空白の状態でEnterキーを押すと、"Please fill out this field"というポップアップボックスが表示されるようになっています。このデフォルトメッセージを "このフィールドは空白にできません" に変更するにはどうしたらよいでしょうか?
EDITです。
また、タイプパスワードフィールドのエラーメッセージは、単に
*****
. これを再現するには、ユーザー名に値を与えて、送信を押してください。
EDIT : テストにはChrome 10を使用しています。同じようにしてください。
解決方法は?
使用方法
setCustomValidity
:
document.addEventListener("DOMContentLoaded", function() {
var elements = document.getElementsByTagName("INPUT");
for (var i = 0; i < elements.length; i++) {
elements[i].oninvalid = function(e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
e.target.setCustomValidity("This field cannot be left blank");
}
};
elements[i].oninput = function(e) {
e.target.setCustomValidity("");
};
}
})
I バニラJavaScriptに変更 が提案するように、Mootoolsから パステルカラー のコメントにあるように、必要であればMootoolsと同等のものを作成することができるはずです。
編集
ここのコードを次のように更新しました。
setCustomValidity
は、私が最初に回答したときに理解していたのとは若干異なる動作をします。 もし
setCustomValidity
を空文字列以外に設定すると、そのフィールドは無効とみなされます。したがって、有効性をテストする前にそれをクリアする必要があります。
その他の編集
以下の @thomasvdb さんのコメントで指摘されているように、カスタムの有効性をクリアするには
invalid
を通過させる必要があります。
oninvalid
ハンドラでクリアします。
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
jq は html ページとデータを動的に分割する。
-
[解決済み] HTML5でminlengthの検証属性はありますか?
-
[解決済み] HTML5 form 要素の検証を無効にする
-
[解決済み】HTML5の "required "属性をチェックボックスのグループに使用する?
-
[解決済み] AngularJSでhiddenフィールドの値が送信されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
fetch ネットワークリクエストラッパーの説明例
-
Vueの要素ツリーコントロールに破線を追加する説明
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueのクラススタイルの使い方の詳細
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。