如果条件改变css

时间:2014-07-05 17:50:53

标签: javascript

HTML:

<div id="register_error">
    <?php
        echo "$error_msg";
    ?>
</div>

JavaScript的:

if(document.getElementById("register_error").innerHTML)
{
    document.getElementById("signUpFormBackground").style.display = "block";
}

如果#register_error div中有任何文本,我希望每次加载时都会检查JavaScript代码,虽然我的代码似乎不起作用,为什么会这样?我错过了什么?如果需要更多信息,请询问。

EDIT --------------------------------- 我有些人说过,我已经清除了这个空白

<div id="register_error"><?php echo "$error_msg";?></div>

但它没有帮助,我认为问题是这部分代码永远不会被调用,我还没有在函数中实现,我只是在脚本标签中编写它。还尝试了.trim()和.length()方法,但仍然是相同的响应。 EDIT2 -------------------------------- 我已经

enter code hereif(document.getElementById("register_error").innerHTML)
{
    document.getElementById("signUpFormBackground").style.display = "block";
}
else
{
    document.getElementById("signUpFormBackground").style.display = "block";
}

没有任何反应,所以我想我的问题是我甚至不能让我的代码开始工作,我一直认为如果我把它放在脚本标签之间它总是至少运行一次当web加载时,我如何在windows load上实际运行它,我已经尝试过了:

<script>
window.onload
{
    if (document.getElementById("register_error").innerHTML.length > 0 )
    {
        document.getElementById("signUpFormBackground").style.display = "block";
    }
    else
    {
        document.getElementById("signUpFormBackground").style.display = "block";
    }
}
</script>

RESULT ----------------------------- 终于找到了我的错误,我没有调用该函数,并认为它会在不调用它的情况下执行操作,代码很好。

3 个答案:

答案 0 :(得分:3)

任何数量的空格都可能会导致.innerHTML检查失败,看起来你已经有了一些。试试这个:

<div id="register_error"><?php echo "$error_msg";?></div>

使用Javascript:

if(document.getElementById("register_error").innerHTML == '')
{
    document.getElementById("signUpFormBackground").style.display = "block";
}

您还可以查看是否innerHTML.length > 0

if(document.getElementById("register_error").innerHTML.length > 0)

虽然不理想,但您也可以将错误逻辑移到php中:

<?php

if ($error_msg != '')
{
   echo "<style>#signUpFormBackground { display: block;}</style>";
}
?>

答案 1 :(得分:2)

你的PHP代码缩进了。因此,即使PHP代码没有任何输出,innerHTML也有文本。在检查它是否为空之前,你应该trim()你的innerHTML

document.getElementById("register_error").innerHTML.trim()

Example

答案 2 :(得分:0)

我想问题出在以下if条件中:

document.getElementById("register_error").innerHTML

您的内部html返回一个字符串,因此您必须将其长度检查为:

if(document.getElementById("register_error").innerHTML.length) {}