在 HTML 标记之前,我运行了一些 php 代码。在此期间,我需要包含一些 javascript 行,例如
..php code...
..javascript code...
..php code..
<html>
<head>
</head>
<body>
<input type="file" name="file" id="file">
</body>
</html>
在 javascript 代码中,我想隐藏文件元素。
这没有任何作用:
..php code
?>
<SCRIPT LANGUAGE="JavaScript">
document.getElementById('file').style.display = 'none';
</script>
<?php
...php代码
如果我在那里发出警报,则会显示。
如果我将该行放入<head></head>
块中的一个函数中并从例如按钮的 onClick 事件中调用它,则文件元素将被隐藏,因此该行很好。也许document.getLementByID
在 html 标签之外是无效的?或者问题可能是页面尚未加载,因此没有具有该 ID 的元素?如果是这种情况,我该怎么办?
解决方案
我在 php 代码中添加了一个变量 $int = 1; (和 $int = 0; 其他地方,但仍然在页面加载之前)。然后在<head></head>
块中:
window.onload = selectChoose;
function selectChoose()
{
if (<?php echo $int ?> == 0) {
showChoose();
}
else {
hideChoose();
}
}
function showChoose()
{
document.getElementById('file').style.display = 'inline';
}
function hideChoose()
{
document.getElementById('file').style.display = 'none';
}