javascript - 使用 javascript 设置 primefaces spinner 的值时出现奇怪的行为

标签 javascript jsf primefaces

抱歉,标题含糊不清。

基本上我想要实现的是有 2 个最大值,一个最小值。

所以我的 xhtml 如下所示:

<p:outputLabel for="max" value="Maximum Occurance: " />
<p:spinner id='max' min="1"  maxlength="3" size="3" value="#{ObjectDefinitionBean.max}" />

<p:outputLabel for="min" value="Minimum Occurance: " />
<p:spinner id='min' min="0"  maxlength="3" size="3" value="#{ObjectDefinitionBean.min}" />

然后我添加下面的javascript,它基本上检查是否 max>min ,如果不是,则将最大值设置为新的最小值,其他方法:

<script type="text/javascript" language="JavaScript">
//<![CDATA[
$("#ioDefCreation\\:max_input").change(function(){
    var min = parseInt($("#ioDefCreation\\:min_input").val());
    var max = parseInt($("#ioDefCreation\\:max_input").val());
    if(min>max){
        $("#ioDefCreation\\:min_input").val(max);
    }
});

$("#ioDefCreation\\:min_input").change(function(){
    var min = parseInt($("#ioDefCreation\\:min_input").val());
    var max = parseInt($("#ioDefCreation\\:max_input").val());
    if(max<min){
        $("#ioDefCreation\\:max_input").val(min);
    }
});
//]]>
</script>

到目前为止,除了奇怪的行为之外,一切都按预期进行: 假设一开始两个值都是 0 我将最小值增加 4(通过单击微调器的向上箭头) 现在最大值正确显示为 4。但是,如果我现在单击最大值的向上箭头,它将显示 1(从初始值 0 增加 1,而不是使用 javascript 设置的值)。这不限于初始值为 0 的情况。它会将 min 和 max 的值重置为通过 javascript 函数更改之前的值。

最佳答案

发生这种情况是因为在您的代码中 max 的最小值为 1。当您使用 javascript 将其设置为 0 时,primefaces 接管控制并将其设置为最小指定值

<p:spinner id='max' !!!min="1"!!! maxlength="3" size="3" value="#{ObjectDefinitionBean.max}" />

关于javascript - 使用 javascript 设置 primefaces spinner 的值时出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370282/

相关文章:

jsf - JSF的h :outputScript/h:outputStylesheet have over plain HTML script/style elements有什么优势

java - 可用的 JSF MVC 组件

java - Primefaces p :dataTable changing default value message "No records found."?

jquery-ui - PrimeFaces 图标

javascript - javascript打印的窗口标题

javascript - AngularJs-$Injector 一个对象?

javascript - 如何让鼠标事件只作用于外层DIV?

javascript - 失去对 socket.io 中套接字的引用

sorting - 如何对将在 JSF 输出中本地化的列表进行排序

JSF 数据表 : conditional filter facets