Jsf 2 Primefaces微调器最大属性达到重置值
在微调器中,我使用最小值和最大值属性。在最小值=0和最大值=59中。当我单击微调器时,它将增加值,以表明我对其再次达到最大值表示怀疑。单击“不增加”时,它将再次启动最小值。有可能吗?使用ajax是一种方法: 在您的页面中:Jsf 2 Primefaces微调器最大属性达到重置值,jsf-2,primefaces,Jsf 2,Primefaces,在微调器中,我使用最小值和最大值属性。在最小值=0和最大值=59中。当我单击微调器时,它将增加值,以表明我对其再次达到最大值表示怀疑。单击“不增加”时,它将再次启动最小值。有可能吗?使用ajax是一种方法: 在您的页面中: <h:form id="form"> <p:spinner min="0" max="60" value="#{yourBean.cuenta}" onkeypress="return false"> <p:ajax
<h:form id="form">
<p:spinner min="0" max="60" value="#{yourBean.cuenta}" onkeypress="return false">
<p:ajax process="@this" update="@this" listener="#{yourBean.cuentaF}"/>
</p:spinner>
</h:form>
<h:body>
<!-- THE SCRIPT -->
<script>
$(document).ready(function() {
var previous = -1;
var $htmlvalue = $('#form\\:jss .ui-spinner-input');
var $uparrow = $('#form\\:jss .ui-spinner-up');
var $downarrow = $('#form\\:jss .ui-spinner-down');
$htmlvalue.val(0);
PF('vjss').value=0;
$uparrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==59 && limit){
PF('vjss').value=0;
$htmlvalue.val(0);
}
previous = PF('vjss').value;
});
$downarrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==0 && limit){
PF('vjss').value=59;
$htmlvalue.val(59);
}
previous = PF('vjss').value;
});
});
</script>
<!-- THE JSF SPINNER COMPONENT -->
<h:form id="form">
<p:spinner widgetVar="vjss" id="jss" min="0" max="59" value="#{yourBean.cuenta}"/>
</h:form>
</h:body>
<p:spinner id="ajaxSpinner" min="0" max="59" value="#{yourBean.number}">
<p:ajax update="@this" process="@this" />
</p:spinner>
编辑:
使用jQuery是另一种方式:
在您的页面中:
<h:form id="form">
<p:spinner min="0" max="60" value="#{yourBean.cuenta}" onkeypress="return false">
<p:ajax process="@this" update="@this" listener="#{yourBean.cuentaF}"/>
</p:spinner>
</h:form>
<h:body>
<!-- THE SCRIPT -->
<script>
$(document).ready(function() {
var previous = -1;
var $htmlvalue = $('#form\\:jss .ui-spinner-input');
var $uparrow = $('#form\\:jss .ui-spinner-up');
var $downarrow = $('#form\\:jss .ui-spinner-down');
$htmlvalue.val(0);
PF('vjss').value=0;
$uparrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==59 && limit){
PF('vjss').value=0;
$htmlvalue.val(0);
}
previous = PF('vjss').value;
});
$downarrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==0 && limit){
PF('vjss').value=59;
$htmlvalue.val(59);
}
previous = PF('vjss').value;
});
});
</script>
<!-- THE JSF SPINNER COMPONENT -->
<h:form id="form">
<p:spinner widgetVar="vjss" id="jss" min="0" max="59" value="#{yourBean.cuenta}"/>
</h:form>
</h:body>
<p:spinner id="ajaxSpinner" min="0" max="59" value="#{yourBean.number}">
<p:ajax update="@this" process="@this" />
</p:spinner>
与@lametaweb类似的解决方案,但不改变最大值和最小值。使用这两种解决方案,您几乎不需要向BackBean添加任何代码 在您的页面中:
<h:form id="form">
<p:spinner min="0" max="60" value="#{yourBean.cuenta}" onkeypress="return false">
<p:ajax process="@this" update="@this" listener="#{yourBean.cuentaF}"/>
</p:spinner>
</h:form>
<h:body>
<!-- THE SCRIPT -->
<script>
$(document).ready(function() {
var previous = -1;
var $htmlvalue = $('#form\\:jss .ui-spinner-input');
var $uparrow = $('#form\\:jss .ui-spinner-up');
var $downarrow = $('#form\\:jss .ui-spinner-down');
$htmlvalue.val(0);
PF('vjss').value=0;
$uparrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==59 && limit){
PF('vjss').value=0;
$htmlvalue.val(0);
}
previous = PF('vjss').value;
});
$downarrow.click(function(){
var limit = PF('vjss').value == previous;
if(PF('vjss').value==0 && limit){
PF('vjss').value=59;
$htmlvalue.val(59);
}
previous = PF('vjss').value;
});
});
</script>
<!-- THE JSF SPINNER COMPONENT -->
<h:form id="form">
<p:spinner widgetVar="vjss" id="jss" min="0" max="59" value="#{yourBean.cuenta}"/>
</h:form>
</h:body>
<p:spinner id="ajaxSpinner" min="0" max="59" value="#{yourBean.number}">
<p:ajax update="@this" process="@this" />
</p:spinner>
在你的背景中:
private static final int MAX=59;
private static final int MIN=0;
private int number;
public int getNumber() {
return number;
}
public void setNumber(int number) {
if (this.number == MAX && number + 1 > MAX){
this.number = MIN;
}else if (this.number == MIN && number -1 < MIN){
this.number=MAX;
}else{
this.number=number;
}
}
private static final int MAX=59;
私有静态最终int MIN=0;
私有整数;
public int getNumber(){
返回号码;
}
公共无效集合号(整数){
如果(this.number==MAX&&number+1>MAX){
这个数字=MIN;
}else if(this.number==MIN&&number-1
可以处理javaScript,因为我允许键事件并尝试减少backbean事件,我编辑了初始解决方案。你试过第二种解决方案吗?它是一个用javascript实现的客户端解决方案。