JSF选项卡/焦点功能在任何版本的IE中都不起作用



我有一个使用ui:include的主登录页面所包含的模态。我能够确认ui:include部分并没有导致我遇到的问题。

在模态上,我有三个JSF元素;两个inputSecrets(myFaces)和一个CommandLink(myFace)用于提交按钮。以下是代码片段:

<div style="padding: 0px 20px 5px 140px; width: 300px; text-align: left; font-size: 12px; font-family: Verdana, Geneva, sans-serif; font-weight: 600;">
        New Password:<br/>
        <t:inputSecret forceId="true" id="pwOne" title="New Password" size="27"  maxlength="20"
                       value="#{accountSettingsBean.newPassword}"
                       tabindex="72" />
        <br/><br/>
        Confirm Password:<br/>
        <t:inputSecret forceId="true" id="pwTwo" title="Confirm Password" size="27"  maxlength="20"
                       value="#{accountSettingsBean.confirmNewPassword}"
                       tabindex="73"/>
    </div>
    <div id="submitButton" style="width: 420px; align: left;">
        <t:commandLink value="SUBMIT"
                       style="color:white; text-decoration:none; text-shadow: 0 -1px 0 rgba(0,0,0,0.3); background: #4775AD; background: -moz-linear-gradient(top, #5b93d8 0%, #4775AD 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5b93d8), color-stop(100%, #4775AD)); background: -webkit-linear-gradient(top, #5b93d8 0%, #4775AD 100%); background: -o-linear-gradient(top, #5b93d8 0%, #4775AD 100%); background: -ms-linear-gradient(top, #5b93d8 0%, #4775AD 100%); background: linear-gradient(to bottom, #5b93d8 0%, #4775AD 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5b93d8', endColorstr='#4775AD', GradientType=0 ); border: 1px solid #848484; padding: 0px 5px;white-space: nowrap;font-size: 14px !important;text-align: center; line-height: 40px;font-weight: bold;-webkit-border-top-left-radius: 10px; -webkit-border-bottom-left-radius: 10px;-webkit-border-bottom-right-radius: 10px; border-radius: 10px 10px 10px 10px; width: 150px; height: 40px; margin-left: -20px; margin-top: 15px; margin-bottom: 10px; display: block;"
                       action="#{accountSettingsBean.updateExpiredPassword}"
                       id="lnkUpdateExpiredPw"
                       binding="#{accountSettingsBean.lnkUpdateExpiredPw}"
                       tabindex="74" />

在通过开发工具可用的IE的每个版本中,选项卡都无法正常工作。在IE9中,当看到模态时,第一次按tab键似乎会将焦点放回主页面,而第二次按下tab键则会将焦点交给第二个inputSecret。在IE8中,选项卡适用于"密码"one_answers"确认密码"字段,但我永远无法切换到提交按钮。我无法在任何版本的IE中切换到提交按钮。此外,点击"返回"会点击我的模态所在主页上的提交按钮,而不是关注IE所关注的任何领域。

我尝试过的一件事是放入一个链接到javascript函数的"onkeydown"事件,以手动将焦点放在我想要的字段上。我还没能做到这一点,但我想找到问题的真正根源,为什么它在IE中不起作用。

这是一个破解,但我能够通过在三个不同的元素中嵌套inputtext字段来解决IE中的这个问题,比如:

<t:inputSecret forceId="true" id="newPasswordOne" title="New Password" size="27"  maxlength="20"
                       value="#{accountSettingsBean.newPassword}">
        <t:inputText tabindex="25" size="1" disabled="true" style="display: none" />
        </t:inputSecret>

它没有打碎萤火虫或铬。我不知道为什么这会起作用,但它确实起作用。

最新更新