我遇到了一个奇怪的问题,不确定它是不是一个bug。基本上,如果当前通过ajax更新下一个,焦点将跳过下一个。
要复制此问题,您可以使用以下bean:
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}"/>
总之,我相信我可以说如果当前字段运行ajax事件以通过update =“nextfield”更新下一个字段,那么,下一个字段无法通过tab键或下一个鼠标点击进行聚焦。第二次鼠标点击会将焦点带到下一个字段,但这很乏味。但是,我可以在紧接的下一个字段之后更新所有字段,并且仍然可以在下一个字段上正确地停留焦点。
这是它应该的样子吗?在这种情况下如何将焦点实际带到下一个字段?
(PrimeFaces 3.2)
答案 0 :(得分:0)
当update
发生时,HTML会更新为c
和d
,因此光标无法关注这些元素。
不确定是否要使用某些事件后JavaScript来设置焦点或仅接受此行为。