Ключ возврата: как правильно сфокусировать форму - PullRequest
3 голосов
/ 29 октября 2010

У меня более одной формы на одной странице: я хотел бы знать, могу ли я как-нибудь отправить нужную форму, когда пользователь нажимает «клавишу возврата»?

Спасибо

Ответы [ 3 ]

1 голос
/ 29 октября 2010

Полагаю, под правильной формой вы подразумеваете форму, над которой работает пользователь!

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

С более точной версией вы можете заставить пользователей выбирать подходящие опции и заставить их работать в одной форме (может быть скрыть ненужную форму, как только вы получите достаточно информации о том, над чем пользователь будет работать)

1 голос
/ 29 октября 2010

Как насчет этого:

<form id="form1">
    <input type="text" />
</form>
<form id="form2">
    <input type="text" />
</form>

<script type="text/javascript">
    for (var i = 0; i < document.forms.length; i++) {
        document.forms[i].onkeypress = function(e) {
            e = e || window.event;
            if (e.keyCode == 13)
                this.submit();
        }
    }
</script>

По сути, перебирайте каждую форму, связывайте событие onkeypress для каждого, который проверяет ввод (keycode == 13) и вызывает отправку в этой форме.

0 голосов
/ 29 октября 2010

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

document.onkeypress = function() {

    var element = activeElement.parentNode;

    while(element.nodeType != /form/i) {
        element = element.parentNode;
    }

    element.submit();
}
...