Вложенный файл не работает в Firefox - PullRequest
0 голосов
/ 10 июня 2011

У меня есть следующий HTML:

<input id="outer" type="file" onchange="console.log('No.');">
    <input id="inner" type="file" onchange="console.log('Yes!');" />
</input>

В таком стиле:

#inner { cursor: pointer; position:absolute; opacity: 0; }
#outer { position: relative; overflow: hidden; direction: ltr; }

Это выглядит как стандартный элемент ввода файла, так как элемент ввода #inner скрыти завернутый в #outer.Мое желаемое поведение - видеть «Да!»когда я выбираю файл, который я получаю в браузерах Webkit (оба входа активируются), но не в Firefox.У вас есть идеи о том, как я могу получить это и в Firefox?

1 Ответ

1 голос
/ 10 июня 2011

Причиной различий в поведении, скорее всего, является неверный код.

См. HTML 4: 17.4 Элемент INPUT : «Начальный тег: необходим , Конечный тег: запрещен »

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

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

...