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 ----------------------------- 终于找到了我的错误,我没有调用该函数,并认为它会在不调用它的情况下执行操作,代码很好。
答案 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()
答案 2 :(得分:0)
我想问题出在以下if
条件中:
document.getElementById("register_error").innerHTML
您的内部html返回一个字符串,因此您必须将其长度检查为:
if(document.getElementById("register_error").innerHTML.length) {}