2013-08-21 32 views
0

我有一個使用ui:include的主登錄頁面的模式。我能夠確認ui:include部分不會導致我遇到的問題。JSF tab/focus功能在任何版本的IE中都不起作用

在模態上,我有三個JSF元素;兩個inputSecrets(myFaces)和一個CommandLink(myFaces)用於提交按鈕。以下是代碼片段:

<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版本中,Tab鍵無法正常工作。在IE9中,當看到模式時,第一個標籤按鈕似乎將焦點返回到主頁面,並且第二個標籤按鈕將其提供給第二個inputSecret。在IE8中,這些選項卡適用於「密碼」和「確認密碼」字段,但我永遠無法將其提交到提交按鈕。我無法在任何版本的IE中提交到提交按鈕。另外,點擊「返回」會觸及主模板上的提交按鈕,而不是專注於IE所關注的任何字段。

我曾嘗試過的一件事是將一個「onkeydown」事件鏈接到一個javascript函數,以手動將焦點放到我想要的字段上。我還沒有能夠得到這個工作,但我想找到問題的實際根源,爲什麼它不在IE中工作。

回答

0

這是一個黑客,但我可以通過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> 

它沒有打破Firefox或Chrome。我不知道爲什麼這會工作,但它確實。

相關問題