如何使用javascript隐藏上传文件元素?

时间:2016-03-29 10:55:50

标签: javascript html

非常奇怪。 我的结构是

<form name="fm"> 
    <input type="file" name="fl">
    <input type="text" name="st"> 
</form>

现在 document.fm.st.hidden = true; 按预期隐藏文本框,但 document.fm.fl.hidden = true; 不起作用,它不会隐藏文件上传元素!为什么&amp;如何解决?

4 个答案:

答案 0 :(得分:1)

听起来这可能是在页面完全加载之前运行脚本的情况。如果您想在脚本运行之前完全确定页面已加载,您可以执行以下操作:

document.onload = function(){ // if you want it could also be window.onload
    document.fm.st.hidden = true;
    document.fm.fl.hidden = true;
};

答案 1 :(得分:0)

你不能给它一个id并使用

document.getElementById('yourID');
也许你可以为它制作一个css类并使用Jquery

.addClass() and .removeClass()

答案 2 :(得分:0)

如果你想保留输入的空间而不是应用visibility =&#34; hidden&#34;否则 display =&#34; none&#34;

按名称获取元素 var inputElements = document.getElementsByName(&#34; fl&#34;); 这将为您提供名称为&#39; fl&#39;。

的元素列表

现在,如果要隐藏所有元素,请运行循环。 目前,它只提供一个元素。 var inputElement = inputElements [0];

如果你想继续使用javascript,我建议使用jQuery。

现在隐藏元素 inputElement.style.display =&#34; none&#34 ;;

答案 3 :(得分:0)

对于初学者,请确保您的脚本位于元素之后。您提供的javascript应该按照提供的方式运行,但如果没有,请尝试以下操作:

<form name="fm"> 
    <input type="file" name="fl">
    <input type="text" name="st"> 
</form>

<script>
    // hides the element (it will still take up space)
    document.getElementsByName("fl").style.visibility="hidden";

    // hides the element (it does not take up any space)
    document.getElementsByName("fl").style.display="none";
</script>