2017-05-13 17 views
3

JavaScriptを使用せずにHTML要素のプロパティ(要素の属性に基づいていない)に基づいてCSSクラスを適用する方法はありますか?純粋なCSSを使用したフォーム入力の検証

例えば、入力要素の下に考える:

<input type="text" id="txtName" class="form-field__input" name="txtName" value=""> 

ユーザが上記要素と相互作用し、いくつかのテキストを入力すると、その「値」プロパティが更新されます。 「値」属性は空のままです。いずれにしても、CSS内の要素のプロパティにアクセスできますか? JavaScriptを使って "value"属性を更新し、属性セレクタを使ってスタイルを更新することは可能です。 CSSセレクタだけを使ってこれを達成する方法はありますか?

明確にするために、私は入力が有効かどうかについて心配していません、私はただコンテンツの可用性をチェックしたい、そしてコンテンツが存在すれば "any-css-rule-1" "any-css-rule-2"

+1

何がユーザーの入力に一致しようとしていますか?どんな条件でどの 'css'ルールを適用する必要がありますか? – guest271314

+0

あなたはHTML5入力で多くの無料の検証を受けます。あなたのニーズを満たしているかどうかを試しましたか? – jmargolisvt

+0

JSを使用せずに、入力ボックス内のコンテンツの存在に基づいて2つの異なるクラスを追加しようとしています。これはできないようです。 –

答えて

0

patternおよびrequiredの属性は、htmlに使用できます。 :valid,:invalidcssの疑似クラスを使用して、特定のユーザー入力に一致させます。

:valid + [for="txtName"]:after { 
 
    content: "valid input"; 
 
    color: green; 
 
} 
 

 
:invalid + [for="txtName"]:after { 
 
    content: "invalid input"; 
 
    color: red; 
 
}
<!-- match exact user input "abc" --> 
 
<input type="text" 
 
     id="txtName" 
 
     class="form-field__input" 
 
     name="txtName" 
 
     value="" 
 
     pattern="abc" 
 
     required /> 
 
<label for="txtName"></label>

+0

'title'と' placeholder'属性には、期待される有効な入力に関するヒントを提供することができます。 – guest271314

関連する問題