Не выбран ни один файл еще
Я хотел бы удалить всплывающую подсказку «Файл не выбран» из файла, введенного в Google Chrome (я вижу, что подсказка не отображается в Firefox).
Обратите внимание, что я говорю не о тексте внутри поля ввода, а о всплывающей подсказке, которая появляется, когда вы наводите курсор мыши на ввод.
Я пробовал это без везения:
23 ответа
Это встроенная часть браузеров webkit , и вы не можете удалить ее. Вам следует подумать о хакерском решении, таком как покрытие или скрытие входных файлов.
Лучшее решение для меня - это обернуть input [type = "file"] в оболочку и добавить код jquery:
Я придумал хакерское решение, которое полностью удаляет «Файл не выбран» плюс дополнительное пространство, добавляемое после этого текста (в Chrome я получаю что-то вроде: «Файл не выбран»).
Это полностью испортило мое выравнивание страниц, поэтому я действительно боролся с этим, чтобы найти решение. Внутри атрибута стиля входного тега установка «ширины» в ширину кнопки устранит конечный текст и пробелы. Так как ширина кнопки не одинакова во всех браузерах (например, она немного меньше в Firefox), вы также захотите установить цвет стиля на тот же цвет, что и на фоне страницы (в противном случае - «блуждающий» Нет "может просвечивать). Мой тег входного файла выглядит так:
Подсказка по умолчанию может быть отредактирована с помощью атрибута title
Но если вы попытаетесь удалить эту подсказку
Это не сработает. Вот мой маленький трюк, чтобы попробовать это, попробуйте название с пробелом. Это сработает.:)
Вы можете отключить всплывающую подсказку, задав заголовок с пробелом в веб-браузерах, таких как Chrome, и пустую строку в Firefox или IE (протестировано в Chrome 35, FF 29, IE 11, Safari Mobile).
Очень просто, забудьте про CSS, предназначенный для ввода ["type"), это не работает для меня. Я не знаю почему. Я получил свое решение в своем теге HTML
Это хитрый. Я не смог найти способ выбрать элемент «no file selected», поэтому создал маску с помощью псевдо-селектора: after.
Мое решение также требует использования следующего псевдо-селектора для стиля кнопки:
К вашему сведению: это будет работать только в браузерах webkit.
P.S., если кто-нибудь знает, как просматривать псевдо-селекторы webkit, такие как приведенный выше в инспекторе webkit, пожалуйста, дайте мне знать
Объединяя некоторые из предложений выше, используя jQuery, вот что я сделал:
И поместите класс "неиспользуемый" в ваши входные данные файла. Это просто и работает довольно хорошо.
Для меня, я просто хотел, чтобы текст был невидимым и все еще использовал кнопку браузера.
Мне нравятся все предложения от undefined, но у меня был другой вариант использования, надеюсь, это поможет кому-то в той же ситуации.
Вам нужно будет настроить контроль довольно много, чтобы достичь этого.
Во всех браузерах и просто. это сделало это для меня
Напрямую вы не можете многое изменить в input [type = file].
Установите непрозрачность файла типа ввода: 0 и попробуйте поместить относительный элемент [div / span / button] поверх него с помощью пользовательского CSS
Все ответы здесь сильно усложнены или, в противном случае, совершенно неверны.
Я создал эту скрипку самым простым способом. При нажатии кнопки «Выбрать файл» откроется меню выбора файла. Затем вы можете стилизовать кнопку так, как вам хочется. По сути, все, что вам нужно сделать, это скрыть введенный файл и вызвать искусственный щелчок по нему при нажатии другой кнопки. Я протестировал это на IE 9, FF и Chrome, и все они работают нормально.
Сюрприз, чтобы никто не упомянул о event.preventDefault()
Затем вы можете использовать различные стили, такие как width , height или другие свойства, чтобы создать свой собственный входной файл.
Оберните и сделайте невидимым. Работа в Chrome, Safari && FF.
Даже если вы установите прозрачность на ноль, появится всплывающая подсказка. Попробуйте visibility:hidden на элементе. Это работает для меня.
Этот работает для меня (по крайней мере, в Chrome и Firefox):
Я нашел очень простое решение, просто установил пустую строку в атрибуте title.
Пройдите -webkit-appearance: . В любом случае стоит попробовать.
Надеюсь, это поможет :)
Лучше избегать использования ненужного JavaScript. Вы можете воспользоваться тегом label, чтобы расширить цель щелчка ввода, например:
Несмотря на то, что ввод скрыт, ссылка по-прежнему работает для него как цель щелчка, и вы можете стилизовать ее так, как хотите.
Вы можете установить ширину для вашего элемента, который будет показывать только кнопку и скрывать «файл не выбран».
Добавим новую форму с кнопкой, нажав на которую будет открываться окно выбора файла. Дальнейшая обработка файла в данном примере не рассматривается. Рекомендуется тренироваться на копии базы или пустой конфигурации. Пример создан на конфигурации 1С:CRM 3.0.
Сначала подготовим конфигуратор.
Заходим в конфигуратор 1С. Если конфигурация не открыта, открываем ее и снимаем с поддержки. В меню "Конфигурация" нажимаем "Открыть конфигурацию". Далее в меню "Конфигурация" нажимаем "Поддержка" и выбираем "Настройка поддержки". В окне нажимаем кнопку "Включить возможность изменения" и устанавливаем переключатели как на картинке. Нажимаем "Ок".
Теперь создадим простую обработку.
Находим в левой таблице объектов объект "Обработки", нажимаем на ней правой кнопкой мыши и выбираем "Добавить". Далее потребуется заполнить Имя обработки, указать, в какой подсистеме 1С хотите вызвать обработку, и добавить новую форму в разделе "Формы".
После создания формы появится окно как представлено ниже.
Теперь создадим команду формы "Загрузить" нажав на плюс в верхнем правом окне. Обязательно укажите свойство "Действие". Это будет название процедуры 1С.
Далее добавляем на форму кнопку "Загрузить", нажав на плюс в левом верхнем окне. Обязательно укажите свойство "ИмяКоманды". Здесь укажем название команды, которую создали на предыдущем шаге "Загрузить". В результате на форме появится кнопка "Загрузить".
Далее напишем небольшой код.
Внизу окна нажимаем на закладку "Модуль". У нас здесь уже есть пустая процедура. Добавляем в нее код.
ДиалогВыбора = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = "Выберите файл";
Если ДиалогВыбора.Выбрать() Тогда
В результате получится так как на рисунке ниже.
И в конце остается проверить в пользовательском режиме. Для этого нажимаем "Начать отладку" или F5. Конфигуратор спросит обновить ли конфигурацию базы данных. Отвечаем "Да" и у нас открывается 1С (режим пользователя). Далее находим подсистему, куда добавили обработку (в нашем случае это "Маркетинг") и проверяем.
На простейшем примере было показано как написать код, прикрепить его на форму и вызвать в пользовательском режиме 1С.
у меня есть кнопка "Выбрать файл" следующим образом (я использую Jade, но он должен быть таким же, как Html5):
в браузере это показывает кнопку с текстом рядом с ним "нет выбранного файла". Я хотел бы изменить текст "Нет выбранного файла" на что-то другое, например "нет выбранного видео" или "выберите видео, пожалуйста". Я следовал первым предложениям здесь:
Я не хочу видеть "нет выбранного файла" для поля ввода файла
но это не изменило текст:
может кто-нибудь помочь мне выяснить, где проблема?
Я уверен, что вы не можете изменить метки по умолчанию на кнопках, они жестко закодированы в браузерах (каждый браузер отображает заголовки кнопок по-своему). Проверьте это кнопка стиль статьи
скрыть ввод с помощью css, добавить метку и назначить ее кнопке ввода. метка будет кликабельной, и при нажатии на нее запустится диалоговое окно файла.
затем стиль метки в виде кнопки, если вы хотите.
- скрыть ввод и добавить кнопку "файлы"
- затем вызовите кнопку "файлы" и попросите его связать fileupload (я использую JQuery в этом примере)
но если вы попытаетесь удалить эту подсказку
это не будет работать. Вот мой маленький трюк, чтобы работать с этим, попробуйте название с пробелом. Это сработает.:)
попробуйте это просто трюк
как это работает
Это очень просто. элемент Label использует тег " for " для ссылки на элемент формы по идентификатору. В этом случае мы использовали "img" В качестве опорного ключа между ними. Как только это будет сделано, всякий раз, когда вы нажимаете на метку, он автоматически запускает событие щелчка элемента формы, которое является событием щелчка элемента файла в нашем случае. Затем мы делаем элемент файла невидимым с помощью display:none и not видимость: скрытый, чтобы он не создавал пустое пространство.
наслаждайтесь кодирования
Подскажите как выбрать файл с помощью интерфейса управляемой формы.
Или подкиньте примерчик работы с файлами на управляемых формах.
Спасибо.
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""Текст""; en = ""Text""";
Фильтр = НСтр(Текст)+"(*.txt)|*.txt";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Истина;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
Для Каждого ИмяФайла Из МассивФайлов Цикл
ВыбФайл = Новый Файл(ИмяФайла);
Текст = "ru = ""; Размер = ""; en = ""; Size = """;
Сообщить(ИмяФайла+НСтр(Текст)+ВыбФайл.Размер());
КонецЦикла;
Иначе
Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
Предупреждение(НСтр(Текст));
КонецЕсли;
(С) копипаста из СП
elephant_x; makarovy; A7758735; freeek; igorkosmos; CatNotDog; MsDjuice; dedicated; aqua22; Sonrisa; aximo; + 11 – Ответить
Не пойму.
Почему (4) не показывает в Реквизите ПутьКФайлу банальный путь к файлу?
т.е. добавлено только
ПутьКФайлу = ИмяФайла;
ПутьКФайлу - реквизит обработки
Пытаюсь записать xml-файл. Пока работаю локально, в режиме Файловый, все отлично срабатывает. Когда пытаюсь повторить подвиг(:)) в режиме Серверный, выдает: "Каталог не обнаружен. ".
Выкладываю фрагмент:
&НаСервере
Процедура ВыгрузитьНаСервере(ИмяФайлаДляСохранения)
Запись=Новый ЗаписьXML;
Запись.ОткрытьФайл(ИмяФайлаДляСохранения, "UTF-16");
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("message");
Запись.ЗаписатьАтрибут.
.
&НаКлиенте
Процедура Выгрузить(Команда)
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогСохраненияФайла.ПолноеИмяФайла = "";
Фильтр = НСтр("ru = 'Файлы XML'") + "(*.xml)|*.xml|";
ДиалогСохраненияФайла.Фильтр = Фильтр;
ДиалогСохраненияФайла.МножественныйВыбор = Ложь;
Если ДиалогСохраненияФайла.Выбрать() Тогда
ВыгрузитьНаСервере(ДиалогСохраненияФайла.ПолноеИмяФайла);
КонецЕсли; ;
КонецПроцедуры
Этот класс имеет функции, которые нам нужны во всех наших последующих сервисах, такие как стандартизированное планирование выполнения и функции ведения журнала.
В новый проект я добавляю следующее:
В конструкторе Windows класс отображается правильно.
Когда я меняю службу на производную от OurServiceBase
Конструктор перестает работать:
Полная ошибка: не удалось показать конструктор для этого файла, потому что ни один из классов в нем не может быть спроектирован. Дизайнер проверил следующие классы в файле: EmailProcessor --- Не удалось загрузить базовый класс OurSharedLibrary.CienaServiceBase. Убедитесь, что на сборку есть ссылка и что все проекты построены.
Имеются ссылки на соответствующие сборки, проект строится. Я не понимаю, почему дизайнер нервничает из-за этого, поскольку мой сервис в конечном итоге происходит от проектируемого класса.
Любые предложения приветствуются.
Дополнительная информация - стек вызовов от дизайнера, когда он отображает ошибку о невозможности разработать производный сервис:
19.07.2011 14:34 EDT Новое открытие.
Класс «OurServiceBase» существует в отдельном проекте (обычно упоминается только как DLL). По прихоти я скопировал файл базового класса в свой проект, построил и открыл конструктор. Это сработало! Когда я снова удалил файл базового класса и вернулся к ссылке на внешнюю DLL, дизайнер снова сломался.
Лучше всего было бы начать с версии OurServiceBase без каких-либо функций и посмотреть, сможете ли вы спроектировать MyService . Если да, то медленно добавляйте функциональность, пока она не сломается.
Поскольку похоже, что у Visual Studio возникла проблема с сериализацией одного из членов OurServiceBase .
Вы также можете получить эту ошибку, если ваша форма находится в общем проекте. Обходной путь - исключить файл из общего проекта, а затем создать ссылки на файл в основных проектах.
Перейдите в Проект > > > Система в поле " Подсистема "выберите" Windows ( / SUBSYSTEM: WINDOWS ) ", нажмите" Применить ".
Перейдите в Проект > > > Дополнительно в поле " точка входа". ", введите значение" Main "и" Применить ", наконец, нажмите" ОК ".
Перейдите к коду файла созданной вами формы (например, MyForm.cpp ) и введите приведенный ниже код в этот файл:
using namespace System;
using namespace System::Windows::Forms;
void Main(array^ args)
Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Project1::MyForm form; Application::Run(%form);
В дополнение к ответу Ausibanez выше.
Мое приложение было в X64, но моя проблема заключалась в том, что я недавно добавил ссылку COM на WIA (Windows Image Acquisition), что и было проблемой.
Читайте также: