HTML5 autofocus = autoselect?

Я использую некоторые функции формы HTML5, чтобы постепенно улучшить пользовательский опыт моего веб-проекта. В частности, это автофокус, я хочу использовать это в модальном (лайтбокс) диалоге, который позволяет пользователям вводить теги. Существующие теги могут быть там.

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

Мои ожидания неверны или Chrome не прав?

4 ответа

Решение

Подробнее об автофокусе и html5 читайте здесь: http://php.quicoto.com/autofocus-in-html5/

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

Chrome решил, что они не правы, и изменил это поведение в Chrome 36.

Я знаю это, потому что я ошибочно полагался на javascript .focus() и html autofocus для выбора текста. Теперь требуется.select() для выделения и фокусировки в текстовом поле. Хорошо, что теперь мы можем быть конкретными из того, что мы хотим:-)

Так что теперь Chrome ведет себя как, например, Firefox.

Из спецификации HTML5 фокусирующие шаги не предписывают, должен ли быть выбран текст. Пользовательские агенты не обязаны и не запрещают выделять текст. В частности, вот соответствующий шаг фокусировки:

Пользовательский агент может применять соответствующие соглашения для платформы для фокусировки виджетов.

Примечание. Например, некоторые платформы выбирают содержимое текстового поля, когда оно сфокусировано.

Предполагается выделить текст, так как input.focus() делает это тоже.

Другие вопросы по тегам