純CSS実現フォーム検証
3522 ワード
フォーム検証について
私たちの日常業務では、フォーム検証は一般的な設計要件であり、登録ボックスにログインしたり、アンケート調査にフォーム検証を使用したりする必要があります.
一般的に我々の実現構想はJSがinputボックスの入力内容を傍受し,ユーザが入力内容を判断することで,次の操作を決定することである.
たとえば、次の例では、優れたオープンソースUIライブラリ、elementから得られます.
export default {
data() {
return {
numberValidateForm: {
age: ''
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
}
以上が私たちの通常の表現検証で、基本的にはJSで完成していますが、CSSで実現できますか?答えはいいです.ここから先にDEMOを
CSS実装フォーム検証
上記のフォーム検証は完全にCSSによって実現され、コア属性は
CSS Level 4
のValidity
である.考え方は:valid
と:invalid
を用いて
のvalue
を判断できる特性である.ここはすべてのコードです
/*
* css
*/
:root {
--error-color: red;
}
.form > input {
margin-bottom: 10px;
}
.form > .f-tips {
color: var(--error-color);
display: none;
}
input[type="text"]:invalid ~ input[type="submit"],
input[type="password"]:invalid ~ input[type="submit"] {
display: none;
}
input[required]:invalid + span {
display: inline;
}
/*
* html
*/
効果のスクリーンショット
使用する知識点
1.HTML 5の新しい属性:pattern
MDNの説明:
コントロール値の正規表現をチェックします.patternは、一部のサブセットだけでなく、値全体を一致させる必要があります.titleプロパティを使用して、ユーザーを助けるモードを説明します.タイプ属性の値がtext,search,tel,urlまたはemailの場合、この属性は適用されます.そうしないと無視されます.(互換ie 10+)
コメント:
pattern
内の検証規則が合法でない場合、例えば長さ検査内にスペースが多くなった場合、コンソールでエラーが報告されます.詳細は以下の通りです.
CSS
はJS
の中の検証規則とは異なり、以下の書き方は無効になります.コア検証規則は[]
で包む必要があります(現在、テストのいくつかの例からそうです.具体的な詳細は資料を調べる必要があります.もっと具体的な情報を知っている人がいたら、教えてください.ありがとうございます.)
2.CSS Level 4セレクタの新属性:invalid
詳しくは私のブログ[[訳]19 CSSレベル4セレクタ]を参照してください.https://juejin.im/post/5ce3b3...
もしあなたが、技術を検討するのが好きで、あるいは本文に対して何か意見や提案があれば、下のQRコードをスキャンして、微信の公衆番号「魚頭のWeb海洋」に注目して、いつでも魚頭とやり取りすることができます.ようこそ!あなたに会えることを心から願っています.