在primefaces日历中表现完全怪异

时间:2019-01-30 11:12:57

标签: jsf primefaces

这是我的素字代码

   <p:calendar id="cal1" showButtonPanel="true">
    <p:ajax event="close" oncomplete="clear1();"/>
</p:calendar>
 <p:calendar id="cal2"  showButtonPanel="true">
    <p:ajax event="close" oncomplete="clear2()"/>
</p:calendar>

问题在于,当调用第二个日历时,也会调用我定义的第一个javascript方法。我检查了两次代码,然后正确调用了该方法?有人可以告诉我为什么这是这样的吗?我真的很困惑

编辑1:  这也是我正在尝试的方法:

     function clear1(){
         $(document).on('click', '.ui-datepicker-close', function () {
          clearValue();
        });
    }
    function clearValue(){
    document.getElementById("form:cal1_input").value="";
    }

  function clear2(){
         $(document).on('click', '.ui-datepicker-close', function () {
          clearValue1();
        });
    }
    function clearValue1(){
    document.getElementById("form:cal2_input").value="";
    }

每当我关闭日历时,它都会两次打开第一种方法,然后两次打开第二种方法:(我通过警报对其进行了检查。当只有一个日历时,该方法可以正常工作,而在多个日历的情况下,该方法将失败

1 个答案:

答案 0 :(得分:1)

您正在尝试将“完成”按钮变成“清除”按钮。为此,存在一个已解决的问题,但我在日历组件上找不到明确的按钮:https://github.com/primefaces/primeng/issues/506

可能您应该使用带有清除按钮的datePicker:https://www.primefaces.org/showcase/ui/input/datePicker.xhtml