0
我遇到了一個奇怪的問題,不知道它是否是一個錯誤。基本上,如果當前通過ajax更新下一個焦點,焦點將跳過下一個焦點。primefaces 3.2 - 無法自動對焦下一個字段
要複製的問題,您可以使用以下豆:
public class TestBean implements Serializable {
private BigDecimal a;
private BigDecimal b;
private BigDecimal c;
//
public TestBean() {
}
public BigDecimal getA() {
return a;
}
public void setA(BigDecimal a) {
this.a = a;
}
public BigDecimal getB() {
return b;
}
public void setB(BigDecimal b) {
this.b = b;
}
public BigDecimal getC() {
return c;
}
public void setC(BigDecimal c) {
this.c = c;
this.calculate();
}
public void calculate() {
if (a != null && b != null)
c = a.multiply(b);
}
}
及以下的XHTML
<p:inputText id="a" value="#{testBean.a}" style="text-align:right">
<p:ajax event="blur" listener="#{testBean.calculate}" update="c d"/>
</p:inputText>
<p:inputText id="b" value="#{testBean.b}" style="text-align:right">
<p:ajax event="blur" listener="#{testBean.calculate}" update="c d"/>
</p:inputText>
<p:inputText id="c" value="#{testBean.c}" style="text-align:right">
</p:inputText>
<p:inputText id="d" value="#{testBean.c}"/>
- 首先,我將點擊字段id =「一個「,id =」a「將會獲得重點,我會輸入一些價值。這裏沒問題。
- 然後,我將按Tab鍵將光標移動到下一個字段,id =「b」,並鍵入一些值。這裏沒問題。
- 然後我再次按Tab鍵,期待光標移動下一個字段,id =「c」。但它沒有發生。只更新字段id =「c」的值,焦點在某處丟失。當焦點丟失時,如果我再次按Tab鍵,焦點將移動到id =「a」(或第一個字段)。
- 即使我不使用Tab鍵,而是使用鼠標點擊代替,如果我現在在字段id =「b」,並點擊id =「c」,焦點也將丟失。
- 如果我從字段id =「b」更新中刪除「c」,使其更新=「d」,然後焦點將停留在字段id =「c」,但問題是,它沒有得到更新爲「c」的計算值。
總之,我相信我可以說,如果當前字段通過update =「nextfield」運行更新下一個字段的ajax事件,那麼下一個字段不能通過tab鍵或下一個字段進行聚焦鼠標點擊。第二次點擊鼠標將把焦點帶到下一個領域,但這很乏味。但是,我可以更新緊接着的下一個字段後面的所有字段,並且仍然將焦點正確地停留在緊接着的下一個字段上。
這是應該的方式嗎?在這種情況下,如何將焦點帶到下一個領域?
(PrimeFaces 3.2)
我嘗試過不完整,但它干擾了ajaxstatus的未完成...感謝回覆,但... – snlm95 2012-08-06 04:06:35