我在 Tomcat 7 上运行 JSF 2.0 应用程序。我想使用 javascript 进行表单验证。这是我的问题的简化版本:
我有两个 jsf 文件 index.xhtml 和 result.xhtml 以及一个带有 javascript 代码的文件。这两个 xhtml 文件都在应用程序根文件夹中。
在 index.xhtml 中:
<h:head>
<h:outputScript name="script.js" library="js" />
</h:head>
<h:body>
<h:form>
<h:inputSecret id="password" />
<h:inputSecret id="confirm" />
<h:commandButton
type="button"
value="go"
action="result"
onclick="checkPassword(this.form)" />
</h:form>
</h:body>
脚本.js:
function checkPassword(form){
var password = form[form.id+":password"].value;
var confirm = form[form.id+":confirm"].value;
alert(password + " " + confirm);
if(password == confirm){
form.submit();
}else{
alert("Password doesn't match");
}
}
result.xhtml 的内容无关紧要。当我运行这个 index.xhtml 时,我得到了我的预期。当我用相同的值填充文本框并单击按钮时,将触发 checkPassword 函数,但浏览器仍停留在 index.xhtml 上,我希望它转发到 result.xhtml。我究竟做错了什么?我不仅对漫游感兴趣,而且对它不起作用的原因感兴趣。你能帮助我吗?