2013-12-25 2 views
0

Я изменил ввод [type = file] и мог получить его на кнопке с зеленым фоном. Используемый код выглядит следующим образом:Невозможно отобразить имя выбранного файла

<style> 
    #file { 
     height:0px; 
     opacity:0; 
    } 
    #span { 
     left:0px; 
     position:absolute; 
     cursor: pointer; 
    } 
</style> 

<form name="form"> 
    <input type="file" id="file" name="file"/> 
    <span id="span" style="background-color: #7FFFD4">Select a file</span> 

</form> 

<script> 
    var span = document.getElementById("span"); 

    span.onclick = function(event) { 
     document.form.file.click(event); 
    }; 

</script> 

Теперь я не могу просмотреть выбранный файл. Есть ли способ просмотреть файл, который я выбрал рядом с кнопкой?

Заранее спасибо

+0

Почему то же самое заявлено 2 раза? Это фактический код, или вы просто вставляете его 2 раза здесь? И правильно помечайте свои вопросы, чтобы найти подходящее решение! –

+0

Извините, я просто вложил его дважды. – user2511113

+0

Вы можете также создать свой тип ввода = «файл», следуя [this] (http://www.quirksmode.org/dom/inputfile.html). –

ответ

0

Вы не можете видеть имя файла, потому что вы установили высоту входного элемента и его непрозрачность к нулю. Вы можете установить непрозрачность 1, и изменить продолжительность, чтобы покрыть кнопку «выбрать файл», например, как-то вроде этого (работает для меня на хром):

#file { 
     opacity: 1; 
} 
#span { 
     left: 3px; 
     position: absolute; 
     cursor: pointer; 
     padding: 10px; 
     top: 3px; 
} 

Вы также можете проверить this

+0

Это сработало !!! большое спасибо – user2511113

-1

Если вы хотите сохранить файл типа ввода как скрытый и хотите показать его имя файла для span. вы можете сделать что-то вроде ниже.

<input type="file" id="file" name="file" onchange="ChangeText(this, 'span');"/> 
    <span id="span" style="background-color: #7FFFD4">Select a file</span> 

function ChangeText(oFileInput, sTargetID) { 

    document.getElementById(sTargetID).value = oFileInput.value; 
} 
Смежные вопросы