簡體   English   中英

p:calendar onselect/onchange 未觸發

[英]p:calendar onselect/onchange not fired

我試圖讓兩個 Javascript 函數在用戶從 ap:calendar 中選擇一個日期時立即被調用。

不幸的是,只有當用戶在文本字段中手動輸入日期並向前選項卡時,才會處理 onchange 事件。 onselect 事件根本沒有被觸發。

xhtml如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <h:outputScript library="js" name="custom.js" target="body" />
</h:head>
<h:body>
    <p:log />
    <h:form id="someForm">
        <p:panelGrid columns="2">
            <p:outputLabel for="myCalendar" value="Date: " />
            <p:calendar id="myCalendar" onchange="alertDateSelected()" onselect="alertSelectEvent()" showOn="button" />
        </p:panelGrid>
    </h:form>
</h:body>
</html>    

onselect 和 onchange 事件的 Javascript 代碼:

function alertDateSelected() {
    PrimeFaces.info('Selected date from p:calendar');
}

function alertSelectEvent() {
    PrimeFaces.info('Clicked p:calendar date selection button');
}

是否有可能掛鈎 p:calendar 上的 onchange/onselect 事件; 例如,如果用戶從日歷面板或通過“今天”按鈕選擇日期? 如果是這樣,我做錯了什么?

用 ajax 事件列表器試試。 例如這樣的事情:

        <p:calendar id="myCalendar">
            <p:ajax event="dateSelect" listener="alertDateSelected" global="false" />
        </p:calendar>

截至今天,它仍然無法在 PrimeFaces 6.0 中工作。

以下方法改為使用 AJAX 事件。 它在啟動時調用 JavaScript 方法(在本例中為PF('ordersTable').filter() ,並通過return false立即取消它。 這樣它只執行 JavaScript 代碼,而不會真正發送 AJAX 請求。

<p:calendar onchange="PF('ordersTable').filter()" onselect="PF('ordersTable').filter()">
    <!-- The JS onchange and onselect events don't work. We "misuse" an AJAX event instead. -->
    <p:ajax event="dateSelect" onstart="PF('ordersTable').filter();return false;" global="false" />
</p:calendar>
<p:ajax event="dateSelect" oncomplete="clickButton('searchFormRegUser:searchButton')" />

問題是我保留了在 p:calendar 和這個內部定義的 onchange 事件(它仍然存在是因為我嘗試了一些事情而忘記刪除另一個)。 當我從 p:calendar 中刪除 onchange 時,這奏效了。 我知道這是舊的,但也許其他人也有類似的問題,所以我發布了。

使用onSelect而不是onChanged

onchange事件

[英]onchange event in <p:selectCheckboxMenu is not fired when selecting all

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM