我正在尝试在按钮单击时执行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属性生成为完全相同的HTML元素的onclick属性. onclick属性通常是指在特定HTML元素上触发HTML DOM click事件时执行的一些JavaScript代码.当最终用户单击HTML元素时会立即触发此事件,这将在HTML元素的默认操作(提交父表单)被调用之前发生.更重要的是,默认操作可以通过JavaScript代码的布尔结果来控制.如果返回false,则不执行默认操作.这就是你的情况.
如果要同时调用onclick属性中的JavaScript代码和HTML< input type =“submit”>的默认操作.元素,那么你必须返回true,或者只是删除返回false;一块完整的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。