#javascript #jquery
#javascript #jquery
Вопрос:
ПРИВЕТ, ребята,
У меня есть приведенный ниже код, в котором я проверяю типы файлов выбранного файла.
hiddenFileInputFile
имеет тип ввода файла.
Приведенный ниже код работает нормально, но если пользователь не предоставляет .csv
файл, то он отображает предупреждение, что нормально, но тогда я хочу, чтобы диалоговое окно файла оставалось открытым, чего не происходит.
Пожалуйста, сообщите.
Также есть ли какой-либо способ, с помощью которого я могу применить фильтр непосредственно к файловому диалогу, чтобы выбирать только .csv
файлы, используя jquery / javascript?
Element.find('input.hiddenFileInputFile').change(function ()
{
var filename = $(this).val();
if (!/.csv$/.test(filename)) {
alert('Please select a csv file');
return false;
}
});
Спасибо.
Ответ №1:
Просто вызовите его click
событие после предупреждения:
if (!/.csv$/.test(filename)) {
alert('Please select a csv file');
$(this).click();
return false;
}
Это не позволит «сохранить его открытым», что невозможно, но повторно откроет его, когда файл недействителен.
Ответ №2:
К сожалению, вы не можете вызвать событие щелчка при вводе файла извне по соображениям безопасности. Однако, если вы хотите ограничить пользователя на стороне клиента, вы можете попробовать:
<input type="file" accept="text/csv" />
Это сделает файлы типа .csv видимыми только в диалоговом окне «открыть файл». Однако я бы также разместил элемент управления на стороне сервера. Если указан неправильный тип, вы можете открыть диалоговое окно предупреждения и соответствующим образом оформить ввод файла (например, красной рамкой) и позволить пользователю открыть диалоговое окно файла, потому что у вас нет никакого способа вызвать это.
Некоторые плагины для jquery предоставляют способы, которые дают вам полный контроль над процессом загрузки.
Плагин Jquery 1,
uploadify jquery
и это лишь некоторые из них.
Надеюсь, это поможет.