我有一个来自Core JavaServer Pages,第3版(第122页)的简单JSF示例应用程序。这个例子是我以前问过的一个简单的JavaScript示例,但当时无法发布代码。
此消息是一个跟进的实际代码,看看是否有人可以看到为什么html页面没有正确调用JavaScript函数(实际上,当我点击提交时没有任何反应)
所有路径都被Intellij IDEA 14识别。事实上,如果我尝试更改变量名称(如outputScript库),Intellij将变为“红色”。
此代码正好位于Core JavaServer Pages第3版,其中可以免费获得相同的源代码。
提前致谢。
的index.xhtml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>#{msgs.windowTitle}</title>
<h:outputStylesheet library="css" name="styles.css"/>
<h:outputScript library="javascript" name="checkPassword.js"/>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2" columnClasses="evenColumns, oddColumns">
#{msgs.namePrompt}
<h:inputText/>
#{msgs.passwordPrompt}
<h:inputSecret id="password"/>
#{msgs.confirmPasswordPrompt}
<h:inputSecret id="passwordConfirm"/>
</h:panelGrid>
<!--Execute JavaScript function on click of the button-->
<h:commandButton type="button" value="Submit Form" onclick="checkPassword(this.form)"/>
</h:form >
</h:body>
</html>
----------
JavaScript Function called by index.xhtml above:
checkPassword.js
function checkPassword(form)
{
alert("inside js");
var password = form[form.id + ":password"].value;
var passwordConfirm = form[form.id + ":passwordConfirm"].value;
if(password == passwordConfirm)
form.submit();
else
alert("Password and password confirm fields don't match");
}