今天在js中处理一个后台request传的值时,本来为了图省事,直接在js中使用EL表达式,一个成功了,另一个却老是报错:“未结束的字符串常量”!!!
最后发现,原来那个报错的EL表达式中传过去的值中有个中文的句号,导致了老是换行.........
function initpage(){
var str1 = "${periodTypeValue}";
var str2 = "${premiumValue}";
if(str1 != "" ||str2 != ""){
document.getElementById("showDesc").style.display = "";
document.getElementById("periodDesc").innerHTML = str1;
document.getElementById("premiumDesc").innerHTML = str2;
}
}
<body onload="initpage();">
<html:form action="/product?method=saveEpolicy" method="post" >
<table width="90%" height="50%" border="0" cellpadding="0" class="CContent" cellspacing="0" align="center">
<col width="20%">
<col width="35%">
<col width="15%">
<col width="30%">
.........
<tr id="showDesc">
<td>
</td>
<td ><!-- align="left" valign="top" 两种方式左、上对齐 -->
<div id="periodDesc">
</div>
</td>
<td>
</td>
<td >
<div id="premiumDesc">
</div>
</td>
</tr>
</table>
</html:form>
</body>
=============================================
最后经查资料,发现其他网友也有遇到过,是有隐藏域的形式解决的,即:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.
<html:hidden property="premiumValue" styleId="premiumValue" value="${premiumValue}"/>
<html:hidden property="periodTypeValue" styleId="periodTypeValue" value="${periodTypeValue}"/>
意外发现后台Action中传过来一个null值是,这样显示的竟不是null,而是“”
var str1 = document.getElementById("periodTypeValue").value;
var str2 = document.getElementById("premiumValue").value;
----------------
1.JAVASCRIPT引用时,使用的字符语言不一致.
比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件内部使用的是GB2312的格式,外面调用使用的是UTF-8,所以文件内部部分特殊字符因为格式不一致,出现乱码,造成此原因.
2.JAVASCRIPT输出HTML字符时,前后标记不匹配.
这种比较常见,往往在输出字符串时,出现单引号(')或双引号(”)不配对,或者是在document.write()的时候,没有正确输出单引号(')或双引号(”)
3.参数内出现HTML标记语言或包含换行符
我今天所遇到的是这种情况.因为我所得到的数据以参数形式传给一函数,结果该数据里包含换行符,造成了此错误.
如:一般测试时只使用单行的数据,是正常的,未出现这个错误,.
当测试时使用多行数据,并使用回车链换行,就出行了此错误.因为里面包含了换行符
对于第3种情况,我的解决方法是:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。