0

入力ボックスのプレースホルダーとしてフォーム検証のエラーを表示しようとしています。

今、私はこの 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を使用せずに、フォーカスアウト時に色が赤に変わらないようにする方法はありますか?

4

1 に答える 1

0

以下のCSSスクリプトを試しましたか?

.error-found[type=text]:not(:focus){
    color: inherit;
}
于 2020-04-07T20:39:09.620 に答える