0
我有一个带有几个按钮和一个表示“删除用户数据”的链接的表单。点击链接后,在任何操作发生之前显示确认弹出窗口。下面是该代码:在随机表单域上输入时执行的JSF commandButton
<p:confirmDialog closable="false"
header="#{bundle['remove.user.data']}"
message="#{bundle['remove.user.data.text']}"
severity="alert" widgetVar="deleteUserPopup">
<h:commandButton
actionListener="#{userBean.deleteUserData}"
value="#{bundle['yes']}" immediate="true"
onclick="deleteUserPopup.hide()">
<f:attribute name="userId"
value="#{userBean.user.id}" />
<f:ajax execute="@this" render="@all" />
</h:commandButton>
<h:commandButton value="#{bundle['no']}"
onclick="deleteUserPopup.hide()" type="button" />
</p:confirmDialog>
<div>
<h:commandLink>
<h:outputText value="#{bundle['remove.user']}" />
<h:graphicImage name="remove.png" library="img"
title="#{bundle['remove.user']}" />
<f:ajax event="click"
onevent="deleteUserPopup.show()" />
</h:commandLink>
</div>
在窗体中,我有很多领域,但它是有问题的文本字段,因为当用户在里面输入文本和命中上输入的方法deleteUserData
立即被呼叫(无确认弹出)。下面是一个例子两个字段代码:
<div>
<h:panelGrid columns="2">
<h:column>
<h:inputText
value="#{userBean.user.lastName}" id="userLastName" />
<h:message for="userLastName" styleClass="warning" />
</h:column>
<h:column>
<h:inputText
value="#{userBean.user.firstName}" id="userFirstName" />
<h:message for="userFirstName" styleClass="warning" />
</h:column>
</h:panelGrid>
</div>
所有上面的代码(2的div和确认对话框)自带的<h:form>
所以里面,我不明白,为什么输入命令按钮的动作监听器是否被执行?
您好,感谢您的建议。不幸的是,没有任何建议的解决方案 - JS输入键的捕获,也没有交换HTML中的按钮,甚至没有增加一个新的第一个按钮的可见性:隐藏。我认为这里的问题不是提交firstnext输入,而是另一个输入。你能否提出另一个解决方法? – Bubolina 2014-10-10 12:47:47
你试过这个
吗?您可以使用号码:defaultCommand ID为您的按钮来定义按键时按下 – sQer 2014-10-10 12:55:14
也许简单的解决方法的输入会发生什么:<脚本类型=“文/ JavaScript的”> $(文件)。就绪(函数(){ 如果(e.keyCode == 13){ 返回false; } }); });如果(e.keyCode == 13) – sQer 2014-10-10 13:19:09