javascript - JSF:一起使用 onclick + actionListener

标签 javascript ajax jsf

我正在尝试在单击按钮时执行 JavaScript,同时在后台设置属性。执行 JS 代码有效,但不会调用属性操作监听器。但是,当我删除 onclick 属性时,单击命令按钮时会在支持中设置属性。我也尝试过使用 actionListener。但同样的问题。这是我的 JSF 代码:

<rich:dataTable value="#{bean.items}" var="item">
  <rich:column>
    <a4j:commandButton value="Upload" onclick="Richfaces.showModalPanel('p-id');return false;">
       <f:setPropertyActionListener target="#{bean.targetId}" value="#{item.id}" />   
   </a4j:commandButton>
 </rich:column>
 // more columns
</rich:dataTable>

我在这里遗漏了什么吗?

最佳答案

<a4j:commandButton>组件生成一个 HTML <input type="submit">元素以及与当前问题无关的 ajax 魔术的一堆 JS 代码。

组件的 onclick属性生成为 onclick同一个 HTML 元素的属性。 onclick属性通常指的是在 HTML DOM click 时执行的一些 JavaScript 代码。事件在特定的 HTML 元素上触发。当最终用户单击 HTML 元素时会立即触发此事件,并且发生在调用 HTML 元素的默认操作(提交父表单)之前。更重要的是,默认操作可以由 JavaScript 代码的 bool 结果控制。如果它返回 false ,则不会执行默认操作。这就是您的情况。

如果您想同时调用 onclick 中的 JavaScript 代码属性 HTML 的默认操作<input type="submit">元素,那么你必须返回 true , 或者只是删除 return false;完全一 block 。

关于javascript - JSF:一起使用 onclick + actionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106223/

相关文章:

javascript - 使用javascript在ios上通过 native 应用程序或网络浏览器显示facebook登录

javascript - 将字符串转换为输出字符串的方法

jquery - 一个简单的 ajax 请求 post 为空

javascript - 在 React Flux 中哪里进行 Ajax 调用

php - 通过 JQuery AJAX 下载无法正常工作

java - JSF-2 应用程序中的服务器端计时器

jsf - JSF 中的拦截器

javascript - 从 "lodash/fp"导入 { 管道} 给出 'ERR_UNSUPPORTED_DIR_IMPORT' 错误

jsf - 如何在valueChangeListener方法中获取更新的模型值?

javascript - 这是否可能是一次黑客尝试?