当用户按下按钮时,如何实现多表单提交。
<h:commandButton value="Multiple submission" action="#{mngr.doSomething}"/>
基本上我只想按住按钮按钮继续调用mngr.doSomething方法。有什么想法吗?
答案 0 :(得分:3)
只有当您使用<f:ajax>
而不是呈现按钮本身时,才有可能。然后,您可以使用onmousedown
和onmouseup
事件通过显式调用按钮的onclick()
处理程序来启动和停止愤怒提交,并且可以使用<f:ajax onevent>
继续显式调用只要按钮看起来仍处于按下状态,成功返回onclick()
处理程序。
这是一个启动示例:
<h:form>
<h:commandButton value="submit" action="#{bean.submit}" onmousedown="startRageSubmit(this)" onmouseup="stopRageSubmit(this)">
<f:ajax onevent="processRageSubmit" />
</h:commandButton>
</h:form>
(再次,使用<f:ajax render>
时,请确保按钮未被选择器覆盖)
用这个JS:
function startRageSubmit(button) {
button.pressed = true;
button.onclick();
}
function processRageSubmit(data) {
if (data.status == "success" && data.source.pressed) {
data.source.onclick();
}
}
function stopRageSubmit(button) {
button.pressed = false;
}
答案 1 :(得分:1)
您可以使用javascript setInterval()
函数添加javascript事件监听器,以便按照您希望的时间间隔提交表单(使用AJAX)。