2013-05-18 2 views
2

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

<div id="container"> 
    <form name="login" id="login" method="post" action=""> 
    <input name="email" type="text" class="label" id="email" placeholder="Enter email..."> 
    <input name="password" type="password" class="label" id="password" placeholder="Enter password..."> 
    <input type="submit" name="submit" id="submit" value="Login"> 
    <a href="register.html" class="sign">Sign Up</a> 
    </form> 
</div> 

на сенсорных устройствах, когда я нажимаю на экране, фокус покидает поля формы (ввода, кнопки, ссылки). Это происходит на устройствах Blackberry и Android, не пробовал это на iphone.

Как я могу предотвратить фокус от ухода полей формы? Я создаю приложение с телефонной связью.

+1

Зачем вам это нужно? Это ожидаемое поведение - нажатие на экран вызывает фокус в другом месте. Как пользователь, если я не хочу фокусировать ввод, мне не нужно. Я не знаю о blackberry/android, но я знаю в iphone, когда я нажимаю на ввод, он увеличивает масштаб и открывает клавиатуру. Это было бы очень неприятно, если я намеренно или случайно размыл текстовое поле – Ian

ответ

1

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

<input onblur="this.focus()" type="text" name="text1"/> 

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

Если ваша проблема, когда пользователь делает что для прокрутки страницы, то вы можете попробовать что-то вроде этого:

<script type="text/javascript"> 
    var last_selected_input; 
    window.onscroll = function() { 
     if (last_selected_input) { 
      last_selected_input.focus(); 
     } 
    } 
</script> 

<input type="text" name="text1" onfocus="last_selected_input = this" /> 

Но вам нужно очистить переменную last_selected_focus всякий раз, когда поле является полным, чтобы избежать стойких сосредоточьтесь на прокрутке каждой страницы.

+0

извините, я имел в виду поля формы (ввод, ссылки, кнопка и т. Д.). я хочу, чтобы фокус всегда оставался на входе, выборе, кнопках или ссылках. в настоящее время, если я нахожу область вне формы, фокус исчезает. Я хочу, чтобы фокус изменился, когда я нажимаю любое из этих полей. – Dapope

+0

Я тоже имел в виду поля формы. –

0

может быть такой же простой, как переменная, которая поддерживает выбранный текущий вход.

$(document).ready(function() { 
    var selected; 
    $('input').focus(function (e){ 
     selected = $(this).attr('id'); 
    }); 
    $('window').blur(function() { 
     $('#selected').focus(); 
    }); 
}); 
+0

Да, переменная, которая поддерживает текущий выбранный вход, будет работать. но это не сработает. – Dapope

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