2014-11-08 55 views
1

我有一个登陆页面上的表单有两个类型输入:嵌入式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>'; 
        } 

问题是只有提交输入被隐藏 - 而文本输入仍然存在。我试着用完全相同的代码结构隔离“文本”输入; p标签上的类也起作用。有人知道这个原因吗?

+0

你可以把'对.success'元素输入你不希望用户看到与'的位置是:相对;'<3 – 2014-11-09 00:48:53

+0

该CSS选择器_does_选择提交和文本输入字段,并正常工作。 Ergo:您向我们显示的代码不是相关的代码,不足以重现问题。可能f.e.因为你有另一个CSS规则,具有更高的特异性,导致文本输入仍然可见。 – CBroe 2014-11-09 00:50:09

回答

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>'; 
        } 
+0

没有运气。没有工作。我相信“提交”和“文本”需要用引号引起语义上的正确。 – David 2014-11-09 00:10:55

+0

okie ..但他们工作没有引号以及。 – 2014-11-09 00:12:36

+1

你所做的改变很微妙,所以解释它是什么会有帮助。作为参考,他删除了在选择器中提交和测试的引号。此外,在这种情况下,我不认为这是一个正确的解决方案,因为[https://mathiasbynens.be/notes/unquoted-attribute-values](在属性选择器中使用引号不应该)。 [http://jsfiddle.net/apkostka/5mvyc3n7/](proof)。 – apkostka 2014-11-09 00:26:41

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

+0

说“最好的方法是Javascript”,然后不解释为什么在这种情况下没有帮助。 – apkostka 2014-11-09 00:05:19

+0

如果成功,两个命令都需要执行。 else子句运行原始文章中未包含的错误消息。 – David 2014-11-09 00:07:29

+0

给出else子句返回的错误消息。 – EdvinasJ 2014-11-09 00:10:23

0

尝试使用的ID作为选择,似乎将是更可靠。

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

我找到了一个解决方案:

形式部分之外创建一个隐藏的股利。

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

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

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