簡體   English   中英

如何在輸入keypress時通過JavaScript調用ap:commandButton?

[英]How to invoke a p:commandButton by JavaScript on enter keypress?

我在頁面中寫了一個和一個。 當按下回車鍵時,我想做任何js檢查,如果成功發布一個動作。

Javascript:

function text_onkeypress() {
    if(event.keyCode==13){
        formSubmit();
    }
}

HTML:

<p:inputText id="context" value="#{bean.fileName}"
 onkeydown="text_onkeypress();"></p:inputText>
<p:commandButton id="search" value="submit" onclick="return formSubmit();" 
 action="#{action.getResult}" ></p:commandButton>

當我在javascript中編寫query(“#search”)[0] .click()時。它可以執行檢查,但不能執行action =“#{action.getResult}”。

我不知道該怎么做。

從Java提交表單的最簡單方法是只調用<p:commandButton>的jQuery對象的click()事件。

可以通過聲明widgetVar屬性從Javascript訪問大多數Primefaces組件。 此屬性創建一個Javascript變量。 例如。

<p:commandButton id="search" value="submit" onclick="return formSubmit();" action="#{action.getResult}" widgetVar="searchClientVar" />

我現在可以在formSubmit函數中訪問變量。 此Javascript變量具有一個名為jq的屬性,該屬性引用基礎jQuery對象以及可用於調用click事件的對象。

function text_onkeypress() {
  if(event.keyCode==13) {
    searchClientVar.jq.click();
  }
}

如果它們通過驗證,這將調用commandButton的服務器端action並提交表單值。

您需要什么樣的支票?

您不需要在enter上手動提交(尤其是只有一種表單時)。 如果僅在用戶輸入內容時才想提交表單,則可以利用validateLength標記。

<h:outputLabel for="firstname" value="Firstname: *" />  
        <p:inputText id="firstname"   
                value="#{personBean.firstname}"   
                required="true" requiredMessage="You have to enter your name" label="Firstname">  
            <f:validateLength minimum="2" />  
        </p:inputText>  
        <p:message for="firstname" />

觀看此處的演示: http : //www.primefaces.org/showcase-labs/ui/pprAjaxStatusScript.jsf

PS:您使用什么PF版本?

暫無
暫無

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

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