嵌入式CSS仅影响某些输入字段

时间:2014-11-08 23:58:17

标签: php css

我在目标网页上有一个表单,其中包含两个类型输入:

<input type="text" name="email" placeholder="enter your email" id="email">
<input type="submit" name="submit" id="submit" value="GO">

PHP验证我的表单后,如果成功,我的PHP脚本中有这段代码:

if($result){ // If successful
                        echo '<style>input[type="submit"],input[type="text"]{display:none;}</style>';
                        echo '<p class="success">Thank you for registering!</p>';
                    }

问题是只保留提交输入 - 文本输入仍然存在。我试过隔离&#34;文本&#34;输入使用完全相同的代码结构; p标签上的类也起作用。有人知道这个的原因吗?

4 个答案:

答案 0 :(得分:2)

嗯,你可以更容易地做到这一点:

if ($result) { // If successful
    echo '<p class="success">Thank you for registering!</p>';
}
else {
    echo '<input type="text" name="email" placeholder="enter your email" id="email">
          <input type="submit" name="submit" id="submit" value="GO">';
}

但最好的方法是 - Javascript

答案 1 :(得分:0)

试试这个,它应该有用。

if($result){ // If successful
                        echo '<style>input[type=submit],input[type=text]{display:none;}</style>';
                        echo '<p class="success">Thank you for registering!</p>';
                    }

答案 2 :(得分:0)

尝试使用id作为选择器,似乎更可靠。

if ($result) {
    echo '<style>#submit,#text{display:none;}</style>';
    echo '<p class="success">Thank you for registering!</p>';
}

答案 3 :(得分:0)

我找到了一个解决方案:

在表单部分之外创建一个隐藏的div。

<p class="hidden">Thank you for registering.</p> 

在提交时,隐藏表单并显示div:

echo '<style>section#form{display:none;}</style>';
echo '<style>p.hidden{display:inherit;}</style>';