HTML5 автофокусировка = автоматический выбор?
Я использую некоторые функции формы HTML5, чтобы постепенно улучшать пользовательский интерфейс моего веб-проекта. В частности, это автофокус, я хочу использовать это в модальном (лайтбоксе) диалоге, который позволяет пользователям вводить теги. Существующие теги могут быть там.
Единственным браузером, который я установил, поддерживающим автофокусом, является Chrome 9, однако, когда я его тестирую, он помещает фокус в поле, но также автоматически выбирает весь существующий текст в поле. Я не ожидал или не хотел автоответа, я хочу автофокусировку.
Является ли мое ожидание неправильным или неверно?
Ответы
Ответ 1
Подробнее о autofocus и html5 здесь: http://php.quicoto.com/autofocus-in-html5/
Если у вас есть фрагмент кода, на который мы могли бы обратить внимание, мы могли бы быть в состоянии помочь. Он выглядит довольно простым и безболезненным для реализации и говорит, что функция поддерживается во всем, кроме Fx и IE.
Ответ 2
Chrome решил, что они ошибались и изменили это поведение в Chrome 36.
Я знаю это, потому что ошибочно полагался на javascript.focus() и html автофокус для выбора текста. Теперь для выбора и фокусировки в текстовом поле требуется .select(). Хорошо, что теперь мы можем быть конкретными из того, что хотим: -)
Итак, теперь Chrome ведет себя как, например. Fire Fox.
Ответ 3
Из спецификации HTML5, этапы фокусировки не определяют, следует ли выбирать текст. Пользовательские агенты не требуются и не запрещаются для выбора текста. В частности, здесь представлен шаг фокусировки:
Пользовательский агент может применять соответствующие соглашения для конкретной платформы для фокусировки виджетов.
Примечание. Например, некоторые платформы выбирают содержимое текстового поля, когда это поле сфокусировано.
Ответ 4
Предполагается выбрать текст, поскольку input.focus()
делает это тоже.