2011-01-19 3 views
14

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

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

Является ли мое ожидание неправильным или неправильно?

+0

Стоит следить за проблемами доступности, как описано здесь http://webaim.org/blog/future-web-accessibility-html5-input-extensions/ –

ответ

6

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

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

+0

Ну, фрагмент - это просто вход с включенным атрибутом автофокуса: . Пример, который вы включаете, имеет смысл, но это касается пустого поля. Как я уже сказал, фокус работает, он помещает курсор в поле, но он также выбирает весь существующий текст, если он есть. Это не то, чего я хочу или ожидаю. – Ferdy

+0

Итак, вы хотите добавить курсор в конец уже существующего текста? Если это так, это не автофокус, и, насколько мне известно, скорее всего, потребуется javascript ... Независимо от этого автофокус делает свою работу. Как сказал Эли, автофокус работает. Попробуйте найти js. Извините, мне хотелось бы помочь. –

+0

На самом деле, мне все равно, помещено ли оно в начале или в конце текста, он должен сфокусироваться на поле. Он не должен выбирать весь текст в этом поле, так как это означает, что пользователи перезаписывают любое существующее значение по мере ввода текста.Я не согласен с тем, что автофокус должен означать, что существующий текст автоматически выбирается, но эй, если это действительно соответствует спецификации, пусть будет так. – Ferdy

-2

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

+3

input.select() выбирает текст, но input.focus() следует просто сфокусировать поле – Maxym

2

С HTML5 specification в шагах фокусировки не указывается, следует ли выбирать текст. Пользовательские агенты не требуются и не запрещаются для выбора текста. В частности, речь идет о соответствующих focusing step:

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

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

6

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

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

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

+0

Спасибо за обновление! – Ferdy

Смежные вопросы