Как использовать jQuery для получения текущего значения поля ввода файла - PullRequest
20 голосов
/ 11 апреля 2009

Из того, что я готов, вы сможете использовать свойство 'value' поля ввода файла, чтобы получить текущий заданный путь к этому полю. Но когда я делаю это:

 $('#fileinput').value()

Я получаю «неопределенный». Я уверен, что идентификатор поля установлен на «fileinput». У кого-нибудь есть мысли о том, почему это может не сработать для меня?

И, кстати, это работает:

var d = document.getElementById('AttachmentFile');
alert(d.value);

Так что я думаю, это как-то связано с тем, как работает jQuery, и я не до конца понимаю.

Спасибо!

Ответы [ 8 ]

48 голосов
/ 11 апреля 2009

Вам нужно использовать val, а не value.

$("#fileinput").val();
22 голосов
/ 21 декабря 2010

В Chrome 8 путь всегда «C: \ fakepath \» с правильным именем файла.

6 голосов
/ 15 июля 2010

это не .val (), если вы хотите получить файл /home/user/default.png, он получит с .val () просто default.png

3 голосов
/ 11 апреля 2009

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

2 голосов
/ 11 апреля 2009

Я думаю, что это должно быть

 $('#fileinput').val();
1 голос
/ 17 января 2011

Jquery работает по-разному в IE и других браузерах. Вы можете получить доступ к последнему имени файла, используя

alert($('input').attr('value'));

В IE вышеупомянутое предупреждение даст полный путь, но в других браузерах оно даст только имя файла.

0 голосов
/ 03 августа 2012

Я пробовал это, и это работает:

 yourelement.next().val();

Вы могли бы быть:

$('#elementIdName').next().val();

удачи!

0 голосов
/ 10 октября 2010

Не могли бы вы также сделать

$(input[type=file]).val()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...