簡體   English   中英

f:ajax通過onchange事件

[英]f:ajax by onchange event

我有一個特殊的問題:我需要通過客戶端onchange事件將值發送到服務器,而無需提交整個表單。 有一些功能可以做到嗎?

我可以用Javascript處理組件:

<h:inputText onchange= ...js... >

我可以通過ajax發送一個值:

<f:ajax execute="name"/>

如何將其放在一起?


解決了,但是我還有另一個問題:

更快處理什么-事件的Ajax處理或JavaScript處理?

很簡單,AJAX專為頁面上的部分提交/更新而設計。 您只需要指定<f:ajax>標記的event屬性,然后根據需要進行change 根據部分表單提交,在標簽的execute屬性中指定要在服務器上更新的組件的ID。 但是,由於<f:ajax> execute的默認值正好是@this (觸發事件的組件),因此您可以將其完全省略。 像這樣:

<h:inputText id="text" value="#{bean.text}">
    <f:ajax event="change"/>
</h:inputText>

這樣,在發生JavaScript更改事件后,您的bean模型將通過AJAX在后台更新。

關於哪個事件發生,第一個問題是您需要了解觸發JavaScript向服務器發送AJAX請求的事件,因此,自然而然,后者首先發生。 另外,通過指定onevent屬性,可以在成功提交AJAX響應后附加客戶端回調以掛接到JavaScript。

我的代碼:

<h:inputText id="appleNO" value="#{xxxModel.appleNO}" size="3" maxlength="3">
  <f:ajax event="blur" execute="@form" listener="#{xxxController.xxxAction()}" render="appleNO"/>
</h:inputText>

當文本框丟失焦點(模糊)時,將觸發xxxAction。

暫無
暫無

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

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