Прототип focusFirstElement () вызывает «исчезновение» формы в IE - PullRequest
2 голосов
/ 28 февраля 2010

Странная ошибка, которую я получаю. У меня есть форма входа, которая по умолчанию скрыта, когда пользователь нажимает на наблюдаемый элемент, элемент, содержащий форму, скользит вниз (используя Effect.BlidnDown в Scriptaculous)

Вот функция, которая является частью объекта «Интерфейс»:

revealLoginForm: function() {
    $('a_login').blur();
    if (!$('hform').visible()) {
        Effect.BlindDown('hform', {
            duration: 0.4,
            afterFinish: function() {
                $('f_login').focusFirstElement();
            }
        });
    } else {
        $('f_login').focusFirstElement();
    }
},

Наблюдение за событием:

 Event.observe('a_login', 'click', Interface.revealLoginForm);

И HTML:

<a id='a_login' href='javascript:void(0);'>Login to My Account</a>
....
<div id='hform' style='display:none;'>
<form id='f_login' action='...' method='post' name='sidelogin'>
<table cellspacing='0' class='login'>
<tr>
<th>Login ID:</th><td><input style='padding:2px;' type='text' size='18' name='enc_loginname' /></td>
</tr>
<tr>
<th>Password:</th><td><input style='padding:2px;' type='password' size='18' name='enc_password' /></td>
</tr>
<tr>
<th></th><td><input type='submit' class='submit' value='Login &raquo;' /></td>
</tr>
</table>
</form>
</div>

Если я отключу $ ('f_login'). FocusFirstElement (); Команда в функцию раскрытия логина (), форма не исчезает. Странно то, что другой вызов этой функции не оказывает негативного влияния на элемент, кажется, что это происходит только при вызове в функции обратного вызова afterFinish для функции Effect.BlindDown.

Есть идеи? Было бы неплохо выбрать первый элемент этой формы после того, как форма появилась. Это отлично работает в Firefox .. это просто IE (я использую IE7), который вызывает проблемы (пойди разберись ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...