2016-03-29 4 views
0

Его довольно странный. Моя структураКак скрыть элемент загружаемого файла с помощью javascript?

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

Теперь document.fm.st.hidden = истина; работает как ожидалось, скрывая текстовое поле, но document.fm.fl.hidden = true; не работает, он не скрывает элемент загрузки файла! Почему & как работать?

+0

Он работает https://jsfiddle.net/tajuhdvk/. Пожалуйста, добавьте более подробную информацию. – Munawir

+0

Когда вы загружаете и запускаете свой скрипт? –

+0

@The_Grits: У меня есть writtten JS в конце файла в '' –

ответ

1

Это звучит, как это может быть случай скрипт, запущенный до того, как страница полностью загружена. Если вы хотите быть абсолютно уверены в том, что страница загружается перед выполнением сценария, вы можете сделать что-то вроде этого:

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

Cant вы просто дать ему идентификатор и использовать

document.getElementById('yourID'); 

другой whise может быть, вы можете сделать класс CSS для него и использовать Jquery

.addClass() and .removeClass() 
+1

и в случае использования первого варианта. Просто используйте document.getElementById ('yourID'). Style.display = none; –

+1

Если это не работает, вы также можете установить непрозрачность 0 –

0

если вы хотите сохранить пространство на вход, чем применить видимость = «скрытый» в противном случае дисплей = "none".

получить элемент по имени var inputElements = document.getElementsByName ("fl"); Это предоставит вам список элементов, имеющих имя 'fl'.

Теперь, если вы хотите скрыть все элементы, запустите цикл. На данный момент это будет только элемент. var inputElement = inputElements [0];

Я бы предложил использовать jQuery, если вы хотите продолжать использовать javascript для долгого времени.

сейчас скрыть элемент inputElement.style.display = "none";

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> 
Смежные вопросы