|
свой метод click()
Здравствуйте
<input type="file" id="fileElem" multiple accept="image/*" style="display:none" onchange="handleFiles(this.files)"> <a href="#" id="fileSelect">Select some files</a> При клике на ссылку fileSelect запускаю функцию а в ней document.getElementById("fileElem").click(); что с свою очередь эмитирует нажатие на input с типом file. Все это для того чтобы скрыть некрасивую форму загрузки файлов. У jquery есть метод click(). Как на чистом js написать этот метод и что мне для этого нужно делал так
document.getElementById("fileElem").onclick;
но не выходит, да и мыслей никаких нет |
я делал это так: внизу по слоям идет красивая кнопочка, а поверх прозрачный итем и файлом.. какбы нажимается кнопочка, но на самом деле идет клик итема
|
skrudjmakdak спасибо, но в моем случае input один а красивых кнопочек будет n-количество(попап окна)
Да и для расширения кругозора хочу научиться писать свой метод клик |
тоже как то хотел сделать как вы, но мне сказали что это вроде не кроссбраузерно.. лично сам не проверял, утверждать не буду
|
вот, даже extjs так делает, как я сказал))
http://docs.sencha.com/extjs/4.1.3/e...le-upload.html |
Может подскажите в какую сторону хоть копать, я не знаю даже с чего ночать.
А на счет кроссбраузерности, если не ошибаюсь реализация на jquery кроссбраузерна |
вот, набросал
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
.input_file
{
position: relative;
width: 200px;
height: 30px;
}
.text
{
position: absolute;
top: 0px;
left: 0px;
width: 130px;
height: 24px;
}
.button
{
position: absolute;
top: 0px;
right: 0px;
width: 60px;
height: 30px;
}
.file
{
height: 30px;
width: 200px;
position: absolute;
top: 0px;
left: 0px;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);
-moz-opacity: 0;
-khtml-opacity: 0;
opacity: 0;
}
</style>
</head>
<body>
<form method="post" action="/login.php">
<div class="input_file">
<input type="text" class="text">
<div class="button">выбрать</div>
<input type="file" class="file">
</div>
</form>
</body>
</html>
|
а как свой click() написать не подскажите? хоть что нибудь от чего можно оттолкнуться
|
Цитата:
|
input[type="file"] {
position: absolute;
visibility: hidden;
z-index: -100;
}
<div> <input type="file" /> <input onclick="fileLoad(this)" type="button" value="Загрузить файл" /> </div>
function fileLoad(a) {
a.parentNode.getElementsByTagName('input')[0].click();
}
|
| Часовой пояс GMT +3, время: 11:49. |
|