Javascript 调用操作前的JSF1.2 commandButton验证
我有一个命令按钮:Javascript 调用操作前的JSF1.2 commandButton验证,javascript,jquery,jsf,jsf-1.2,Javascript,Jquery,Jsf,Jsf 1.2,我有一个命令按钮: <h:commandButton onclick="validate();" action="#{method.exitBtn}" value="Move File"></h:commandButton> 但是,该警报从未显示。我使用的是JSF1.2,您似乎没有理解JSF的要点。JSF提供组件来生成HTML输出,并提供整个生命周期来执行收集提交的值、转换和验证它们并将它们设置为bean属性。默认情况下,当JSF管理的验证失败时,不会调用JSFbea
<h:commandButton onclick="validate();" action="#{method.exitBtn}" value="Move File"></h:commandButton>
但是,该警报从未显示。我使用的是JSF1.2,您似乎没有理解JSF的要点。JSF提供组件来生成HTML输出,并提供整个生命周期来执行收集提交的值、转换和验证它们并将它们设置为bean属性。默认情况下,当JSF管理的验证失败时,不会调用JSFbean操作 请按照以下基本示例重写您的表单:
<h:form>
<h:selectOneMenu value="#{bean.amount}" required="true">
<f:selectItem itemValue="#{null}" itemLabel="Select Amount" />
<f:selectItem itemValue="A" />
<f:selectItem itemValue="B" />
<f:selectItem itemValue="C" />
<f:selectItem itemValue="D" />
<f:selectItem itemValue="E" />
</h:selectOneMenu>
<h:commandButton value="Submit" action="#{bean.submit}" />
<h:messages />
</h:form>
JSF提供的required=true属性将根据需要验证输入组件。如果验证失败,任何消息都将显示为与组件相关联的消息,或如示例所示的一般消息
不需要jQuery/JS验证,当客户端禁用JS时,jQuery/JS验证无论如何都不会工作。如果您真的想坚持使用纯HTML/JS,那么您应该重新考虑为什么要使用JSF。另请参见《对不起,我是JSF新手》的可能副本。在上面的示例中,itemValue所在的位置,如何包含£symbol?我试过了&镑;在我的按钮中有一个creditLimit.exitButton操作,在您的示例中它到哪里去了?1只需使用UTF-8并保存/服务即可!。2只需替换示例中的{bean.submit}。顺便问一下,如果您刚刚开始一个新项目,您是否知道JSF1.x基本上是一种过时的技术,因为它在5年多前已经升级到JSF2.x了?如果没有,您确定您正在阅读关于JSF的最新书籍/教程/资源吗?否则,您只会在混乱中结束,因为许多事情是以不同的方式完成的:在JSF2.x中更好。如果我使用commandLink而不是Button,同样的逻辑会适用吗?链接似乎不起作用。如果我改为commandLink,我会得到错误类型错误:f在浏览器Firefox中为空
function validate() {
alert("you clicked!");
}
<h:form>
<h:selectOneMenu value="#{bean.amount}" required="true">
<f:selectItem itemValue="#{null}" itemLabel="Select Amount" />
<f:selectItem itemValue="A" />
<f:selectItem itemValue="B" />
<f:selectItem itemValue="C" />
<f:selectItem itemValue="D" />
<f:selectItem itemValue="E" />
</h:selectOneMenu>
<h:commandButton value="Submit" action="#{bean.submit}" />
<h:messages />
</h:form>
public class Bean {
private String amount; // +getter+setter
public void submit() {
System.out.println("Submitted amount: " + amount);
// ...
}
// ...
}