如何在 inputText 聚焦或更改值时呈现 outputText?
How to render outputText when inputText is focused or changes value?
我正在学习 Java EE,但我 运行 遇到了一个我无法解决的问题。我有这个 xhtml:
<h:form>
<fieldset>
<legend>Random Number (with execute="someId")</legend>
Range:
<h:inputText value="#{numberGenerator.range}"
id="rangeField">
<f:ajax event="change" execute="@this"
render="numField3"/>
<f:ajax event="focus" execute="@this"
render="numField3"/>
</h:inputText><br/>
<h:commandButton value="Show Number"
action="#{numberGenerator.randomize}">
</h:commandButton><br/>
<h2><h:outputText value="#{numberGenerator.number}"
id="numField3"/></h2>
</fieldset>
</h:form>
这是豆子:
package javaeetutorial.ajaxguessnumber;
import javax.faces.bean.*;
@ManagedBean
public class NumberGenerator {
private double number = Math.random();
private double range = 1.0;
public double getRange() {
return(range);
}
public void setRange(double range) {
this.range = range;
}
public double getNumber() {
return(number);
}
public double getNumber2() {
return(Math.random() * range);
}
public String randomize() {
number = range * Math.random();
return(null);
}
}
我的问题是,每当 inputText 获得焦点或更改值时,我如何设法使值呈现在 outputText 中?到目前为止,我只在输入文本聚焦时设法更新它,但在值更改时没有任何反应。
尝试 keyup
而不是 change
。支持的事件列表是:blur
、change
、click
、action
、dblclick
、focus
、keydown
、keypress
、keyup
、mousedown
、mousemove
、mouseout
、mouseover
、mouseup
和 select
。
虽然这可能会向您的服务器触发大量 ajax 事件,因此请为此做好准备。 每次击键你都会得到一个事件。
来源:https://www.beyondjava.net/a-comprehensive-guide-to-jsf-ajax
我正在学习 Java EE,但我 运行 遇到了一个我无法解决的问题。我有这个 xhtml:
<h:form>
<fieldset>
<legend>Random Number (with execute="someId")</legend>
Range:
<h:inputText value="#{numberGenerator.range}"
id="rangeField">
<f:ajax event="change" execute="@this"
render="numField3"/>
<f:ajax event="focus" execute="@this"
render="numField3"/>
</h:inputText><br/>
<h:commandButton value="Show Number"
action="#{numberGenerator.randomize}">
</h:commandButton><br/>
<h2><h:outputText value="#{numberGenerator.number}"
id="numField3"/></h2>
</fieldset>
</h:form>
这是豆子:
package javaeetutorial.ajaxguessnumber;
import javax.faces.bean.*;
@ManagedBean
public class NumberGenerator {
private double number = Math.random();
private double range = 1.0;
public double getRange() {
return(range);
}
public void setRange(double range) {
this.range = range;
}
public double getNumber() {
return(number);
}
public double getNumber2() {
return(Math.random() * range);
}
public String randomize() {
number = range * Math.random();
return(null);
}
}
我的问题是,每当 inputText 获得焦点或更改值时,我如何设法使值呈现在 outputText 中?到目前为止,我只在输入文本聚焦时设法更新它,但在值更改时没有任何反应。
尝试 keyup
而不是 change
。支持的事件列表是:blur
、change
、click
、action
、dblclick
、focus
、keydown
、keypress
、keyup
、mousedown
、mousemove
、mouseout
、mouseover
、mouseup
和 select
。
虽然这可能会向您的服务器触发大量 ajax 事件,因此请为此做好准备。 每次击键你都会得到一个事件。
来源:https://www.beyondjava.net/a-comprehensive-guide-to-jsf-ajax