Перемещение экрана в целевую область html5

0

У меня есть форма html5 и кнопка отправки (оригинал, я знаю).
Когда пользователь неправильно заполняет форму и нажимает тег html <button.../>, фокус переходит к первому сообщению об ошибке. Это ожидаемое и хорошее поведение, и все хорошо.
Однако, когда пользователь нажимает GO на обоих хром и сафари, фокус не двигается.

Я попробовал отладку, распечатав document.activeElement после установки фокуса.
Он печатает тот же элемент html, когда я нажимаю кнопку go, и когда я нажимаю кнопку формы, даже если фокус не на этом конкретном элементе, когда я нажимаю GO.

Вкратце:

  • Нажмите кнопку HTML - используйте jquery для применения фокуса к желаемому входному сигналу ошибки. Работает как шарм.

  • Нажмите кнопку GO - используйте ту же функцию, чтобы применить фокусировку к желаемому входу ошибки.
    Пользователь ничего не получает.

Примеры кода:

Разметка:

<form class="boxBody form" action="#" id="profileForm">  
    <input type="text" class="keyboardInput" id="customer-email" name="email" tabindex="1" size="28" maxlength="128">  
   //More inputs  
    <button id="profileSubmit" data-localize="{'text': 'profileBox.submit'}" tabindex="11" class="save-profile btn btn-red"></button>  
</form>  

.js:

$('#profileForm').submit(function(event)
{
    event.preventDefault();
    updateProfile(event);  
//updateProfile validates the form and creates error messages
    setFocusOnUpdate();
    console.log(document.activeElement);
 //prints the same dom element.
});  

А также

function setFocusOnUpdate(){
var successMessage = $(".alert-success:visible", widgetElement);  

if( successMessage.length > 0 )
{
    //Success message gets focus
    widgetElement.find("input, select").last().focus();
}
else
{               
    //First error message gets focus
    var firstVisibleAlert = $(".alert:visible", widgetElement)[0];
    $(firstVisibleAlert).parent().find("input, select").focus();
}           
}

Вещь в обоих случаях GO и <button/>, нужный элемент получает фокус, но экран только перемещается к элементу, когда я использую кнопку. Как я могу заставить экран двигаться, когда вы нажимаете также?

Может ли какой-нибудь волшебник мне помочь? Любые идеи оценили!

Теги:
mobile-safari

1 ответ

0

Вы пытались использовать привязки на одной странице, чтобы получить желаемый эффект?

Невозможно ли установить анкеры формами, чтобы, когда вы хотите, чтобы фокус был установлен слишком определенным входом, он делает это, перемещая экран на якорь?

  • 0
    Зачем мне нужен якорь, когда у меня есть элемент ввода с идентификатором? фокус находится на нужном объекте, экран просто не двигается.
  • 1
    И якорь должен заставить экран двигаться. Я просто размышлял над идеей, которая у меня была.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню