我正在使用JSF并实现了一个JS函数,当单击commandLinks和Buttons时会调用该函数。如果多次单击链接/按钮,该功能用于防止多次提交。问题是它适用于所有按钮和一些链接,即使它在被点击时总是被调用:S这是JS函数:
var formSubmitted = false;
function onSubmit() {
if (!formSubmitted) {
formSubmitted = true;
} else {
event.preventDefault();
}
}
以下是工作按钮的示例:
<h:commandButton onclick="onSubmit()" value="#{Buttons.andraVGU}" rendered="#{vardgivareVGBean.visaAndraVgu}"
action="#{vardgivareVGBean.actionAndraVGU}" />
这是一个链接示例,它会调用函数但仍然给我一个例外。
<h:commandLink value=""
onclick="onSubmit()"
action="#{forslagTillaggBulkBean.oppnaFastTillagg}"
onmouseover="onMouseOverTableRow(this); return false"
onmouseout="onMouseOutTableRow(this); return false"
disabled="#{forslagTillagg.tillaggTypAsString=='TILL'}">
<h:outputText escape="false" value="#{forslagTillagg.uppdrag}"
styleClass="#{forslagTillagg.status != 'N' ? 'farg' : 'greyedout'}" />
<f:param name="fastTillaggID"
value="#{forslagTillagg.fastTillaggID}" />
<f:param name="fastTillaggGiltigt"
value="#{forslagTillagg.tillaggTypGiltig}" />
</h:commandLink>
这是一个有效的commandLink:
<h:commandLink onclick="onSubmit()" value=""
actionListener="#{oversiktBean.valjFakturaRad}"
onmouseover="onMouseOverTableRow(this); return false"
onmouseout="onMouseOutTableRow(this); return false">
我意识到链接之间的一个区别是那些不起作用的链接有嵌套标签,但我不明白为什么会导致问题。
我真的很感谢有经验的家伙的解释! 谢谢!