实体名称必须紧跟在'&'在实体引用中
The entity name must immediately follow the '&' in the entity reference
我有以下简单的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中需要哪些必要的更改才能使其按预期运行?
这是XHTML,所以您需要
-
将脚本内容包裹在
CDATA
标签中:<script> //<![CDATA[ $(document).ready(function() { // snip... } //]]> </script>
-
或者,将脚本移动到外部文件,并使用
<h:outputScript />
包含它。
如果您正在使用jQuery,您需要使用像这样的特殊字符来引用元素的ID:
<h:form id="myForm">
<h:inputText id="myInput" />
</h:form>
<script type="text/javascript>
$("#myForm'':myInput").val("some value");
</script>
在这里(在页面的顶部)。
我发现了同样的问题,我用:
if (event.keyCode==46 || event.keyCode==8|| event.keyCode==9 || event.keyCode>=35 && event.keyCode<=40) {
// let it happen, don't do anything
}
相关文章:
- 引用对象中的通用值
- 如何在JavaScript中将字符串转换为函数引用
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 在动态创建的元素上获取对特定选择器的引用
- IIFE中的函数引用不可用
- 如何通过引用var Using DataTables来进行分页或排序
- 如何在创建键时引用来自同一对象的键
- Datatables:通过DOM数据源中的名称引用列
- 自引用回调
- 引用类变量中的原型方法
- 无法获取属性'selectedIndex'的未定义引用或null引用
- breezejs:向实体类型添加引用约束
- "实体名称必须紧跟在'&'在实体引用中&”;
- 实体名称必须紧跟在'&'在实体引用中
- 在自定义上下文提供程序中删除带有引用的实体
- 实体名称必须紧跟在'&'在实体引用中.javascript
- FaceletsException:实体名必须紧跟在'&'在实体引用中
- 实体名称必须紧跟在'&'在实体引用中
- 在一个具有规范化状态的React / Redux应用中,如何以及在哪里解析对其他实体的引用
- 有没有办法通过OData v4中的一个PATCH请求来更新实体属性并添加对它的引用