【问题标题】:primefaces 3.2 - Can't auto focus the next fieldprimefaces 3.2 - 无法自动聚焦下一个字段
【发布时间】:2012-08-06 03:46:25
【问题描述】:

我遇到了一个奇怪的问题,不确定是否是错误。基本上,如果当前通过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}"/>
  1. 首先,我将单击字段 id="a",id="a" 将获得焦点,然后我将键入一些值。这里没问题。
  2. 然后我将按 Tab 键将光标移动到下一个字段 id = "b",然后键入一些值。这里没问题。
  3. 然后我将再次按 Tab 键,希望光标移动下一个字段 id = "c"。但它不会发生。只有字段 id="c" 的值被更新,焦点在某些地方丢失。当焦点丢失时,如果我再次按 Tab 键,焦点将移动到 id = "a"(或第一个字段)。
  4. 即使我不使用 tab 键而是使用鼠标单击,如果我现在在字段 id = "b" 并单击 id="c",焦点也会丢失。李>
  5. 如果我从字段 id="b" 更新中删除“c”,使其成为 update="d",那么焦点将停留在字段 id="c" 上,但问题是,它没有得到使用“c”的计算值更新。

总之,我相信我可以说,如果当前字段运行一个ajax事件通过update="nextfield"更新下一个字段,那么,下一个字段不能通过tab键或下一个鼠标单击来聚焦。第二次鼠标单击会将焦点带到下一个字段,但这很乏味。但是,我可以在下一个字段之后更新所有字段,并且仍然可以将焦点正确地放在下一个字段上。

这就是它应该的方式吗?在这种情况下如何真正将焦点转移到下一个领域?

(PrimeFaces 3.2)

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    update 发生时,HTML 会为cd 更新,因此光标无法聚焦在这些元素上。 不确定你想使用一些发布事件 JavaScript 来设置焦点还是只是接受这种行为。

    【讨论】:

    • 我尝试了 oncomplete,但它干扰了 ajaxstatus 的 oncomplete...虽然感谢您的回复...
    猜你喜欢
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2021-07-11
    • 2016-01-02
    • 1970-01-01
    • 2021-09-08
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多