JavaScript报错--未结束的字符串常量

25 篇文章 0 订阅
8 篇文章 0 订阅

    今天在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 οnlοad="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 style="display: none;" id="showDesc">
                <td>
                       &nbsp;&nbsp;
                </td>
                <td style="text-align: left; vertical-align: top;" ><!-- align="left" valign="top"  两种方式左、上对齐 -->
                      <div id="periodDesc">
                      </div>
                </td>
                <td>
                    &nbsp;&nbsp;
               </td>
               <td style="text-align: left; vertical-align: top;" >
                    <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种情况,我的解决方法是:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值