入力ボックスのプレースホルダーとしてフォーム検証のエラーを表示しようとしています。
今、私はこの HTML/PHP コードを持っています:
<input type="text" name="name" id="name" placeholder="Enter first name"
class="<?php if(isset($error['name'])){echo "error-found";} else { echo "no-error";} ?>"
value="<?php if(isset($error)){ echo htmlspecialchars($_POST['name'], ENT_QUOTES); } ?>" tabindex="1">
およびCSS:
.error-found[type=text]:focus{
color: inherit;
}
.error-found[type=text]{
color:red;
}
エラーが検出されると、プレースホルダー テキストの色が赤に変わります。ユーザーが入力ボックスに移動して何かを書き込むと、色が継承されますが、ユーザーが次のボックスに移動したり、フォーカスを外したりすると、色が再び赤に変わります。これは私が望むものではありません。
テキストが入力ボックスに入力された場合にのみ、Javascriptを使用せずに、フォーカスアウト時に色が赤に変わらないようにする方法はありますか?