当用户按住按钮时,如何实现多个表单提交。
<h:commandButton value="Multiple submission" action="#{mngr.doSomething}"/>
基本上,只要按住按钮,我只想继续调用 mngr.doSomething 方法。有任何想法吗?
当用户按住按钮时,如何实现多个表单提交。
<h:commandButton value="Multiple submission" action="#{mngr.doSomething}"/>
基本上,只要按住按钮,我只想继续调用 mngr.doSomething 方法。有任何想法吗?
仅当您使用<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;
}
您可以使用 javascript 函数添加 javascript 事件侦听器,setInterval()
以在您希望的时间间隔内提交表单(使用 AJAX)。