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;
}

当发现错误时,占位符文本的颜色变为红色。当用户转到输入框并写一些东西时,它会变成继承颜色,但是当用户转到下一个框/聚焦时,颜色再次变为红色,这不是我想要的。

有没有办法通过 PHP/CSS/HTML,而不使用 Javascript 来使颜色在焦点消失时不会变为红色,并且只有在输入框中输入文本时?

4

1 回答 1

0

你试过下面的 CSS 脚本吗?

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