我有以下簡單的Javascript代碼,只允許將數字輸入到指定的TextField
中。我早些時候在很多地方使用過它,例如Servlet,JSP,JSTL/EL,甚至在PHP中也是如此,並且按預期運行良好。然而,在JSF中,我更少關心一些字符需要轉義的Javascript。我盡力讓它運行,但我不能。這裏是Javascript代碼以及JSF的東西。實體名稱必須緊跟實體參考中的'&'
<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Demo</title>
<script type="text/javascript" language="javascript">
$(document).ready(function()
{
$("#myForm:txtDemo").keypress(function(event)
{
if (event.keyCode==46 || event.keyCode==8|| event.keyCode==9 || event.keyCode>=35 && event.keyCode<=40)
{
// let it happen, don't do anything
}
else
{
if (event.charCode<48 || event.charCode>57 || event.charCode==16)
{
event.preventDefault();
}
}
});
});
</script>
</h:head>
<h:body>
<h:form id="myForm">
<br/><br/><br/>
<h:inputText id="txtDemo" required="true" requiredMessage="Mandatory." validatorMessage="The field should contain al least 10 digits">
<f:validateLength maximum="10" minimum="2"/>
<f:validateRegex pattern="[0-9]*"/>
<f:ajax event="valueChange" execute="txtDemo msg" render="txtDemo msg"/>
</h:inputText><br/>
<h:message id="msg" for="txtDemo" showDetail="true" style="color:red"/><br/>
<h:commandButton id="btnSubmit" value="Submit"/>
</h:form>
</h:body>
JavaScript是不被編譯。它分析以下錯誤。
An Error Occurred:
Error Parsing /Restricted/TempTags.xhtml: Error Traced[line: 14] The entity name
must immediately follow the '&' in the entity reference.
我甚至放在Javascript代碼在一個單獨的文件js
幷包含在此頁面文件。我也用<h:outputScript></h:outputScript>
代替<script></scrip>
仍然是同樣的問題。
我也曾嘗試以下看到的Javascript功能是否被調用或不使用alert();
去除的功能,但功能本身的錯誤解析代碼甚至沒有打來電話,警告信息是不顯示。
<script type="text/javascript" language="javascript">
$(document).ready(function()
{
$("#myForm:txtDemo").keypress(function(event)
{
alert();
});
});
</script>
哪些是需要在使用Javascript必要的修改,把它按預期運行?
當你在'CDATA'標籤(Google的語法)中包裝JS時會發生什麼? – Blender 2011-12-22 04:44:43
@Blender或只是[向下滾動](http://stackoverflow.com/a/8599528/139010)';-)' – 2011-12-22 04:52:35
@MДΓΓБДLL:偷偷摸摸的答案提升,先生。我喜歡。 +1 – Blender 2011-12-22 04:53:18