原型focusFirstElement()导致窗体在IE中“消失”

时间:2010-02-28 14:46:07

标签: forms internet-explorer prototypejs

我得到的奇怪的错误。我有一个默认隐藏的登录表单,一旦用户点击观察到的元素,包含表单的元素向下滑动(使用Scriptaculous中的Effect.BlidnDown)

这是函数,它是'Interface'对象的一部分:

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();在revealLoginForm()中的命令,表单不会消失。奇怪的是,对该函数的另一个调用不会对元素产生负面影响,只有在AfterFinish回调函数调用后才会发生.BlindDown函数。

有什么想法吗?一旦表单出现,选择此表单的第一个元素会很高兴。这在Firefox中运行良好..它只是IE(我使用IE7)导致问题(去图......)

0 个答案:

没有答案