f:onchange事件的ajax

Pet*_*šek 2 javascript ajax jsf

我有一个特殊问题:我需要通过客户端onchange事件向服务器发送一个值而不提交整个表单.有一些功能吗?

我可以通过Javascript处理组件:

<h:inputText onchange= ...js... >
Run Code Online (Sandbox Code Playgroud)

我可以通过ajax发送一个值:

<f:ajax execute="name"/>
Run Code Online (Sandbox Code Playgroud)

怎么把它放在一起?


它已经解决了,但我有另一个问题:

什么是更快处理 - Ajax处理事件或JavaScript处理?

sku*_*sel 6

简单,AJAX专为在页面上发生的部分提交/更新而设计.您只需要指定标签的event属性,<f:ajax>并根据需要将其设置change为.根据部分表单提交,在标记的execute属性中指定要在服务器上更新的组件的ID .但是,作为executeof的默认值<f:ajax>正是@this(触发事件的组件),您可以完全省略它.像这样:

<h:inputText id="text" value="#{bean.text}">
    <f:ajax event="change"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

这样,在JavaScript更改事件发生后,您的bean模型将通过AJAX在后台更新.

至于哪个事件发生在第一个问题,您需要了解它是触发向服务器发送AJAX请求的JavaScript事件,因此,自然地,后者首先发生.此外,通过指定onevent属性,您可以附加客户端回调以在成功提交AJAX响应时获取JavaScript钩子.