1.这是我的input定义:
<c:if test="${empty sADTOListStr == false}">
<input id="hd_sADTOListStr" value= ${sADTOListStr } type="hidden"/>
</c:if>
2.这是我要给input赋的值(只截取了一部分,用作说明~):
[{"catAnsDisList":[{"answerDistributeDTO":[{"choice":"A","choiceContent":"(图_A) <img alt=\"\" data-cke-saved-src=\"/uploadImg/getpic?path=E:/EduDAS1.0/source/das_server/ckfiles/ada1b8e3-a1e2-40da-9c06-12d8f78bfb24/31e4861a-ac04-4cba-b192-0bfb4742cf2b.png\" src=\"/uploadImg/getpic?
path=E:/EduDAS1.0/source/das_server/ckfiles/ada1b8e3-a1e2-40da-9c06-12d8f78bfb24/31e4861a-ac04-4cba-b192-0bfb4742cf2b.png\" style=\"height:23px; width:23px\">国旗","number":1,"percent":"50.0","questionId":567,"valueId":"","valueName":""},{"choice":"C","choiceContent":"(图_C) 哈哈<img alt=\"\" data-cke-saved-src=\"/uploadImg/getpic?path=E:/EduDAS1.0/source/das_server/ckfiles/dc1c4316-d0ae-4ce4-aa16-f061e3ba7617/8873220e-4f6e-4f26-b140-160af8ef2578.png\" src=\"/uploadImg/getpic?path=E:/EduDAS1.0/source/das_server/ckfiles/dc1c4316-d0ae-4ce4-aa16-f061e3ba7617/8873220e-4f6e-4f26-b140-160af8ef2578.png\" style=\"height:23px; width:23px\">ATM","number":1,"percent":"50.0","questionId":567,"valueId":"","valueName":""},{"choice":"B","choiceContent":"(图_B) 足球<img alt=\"\" data-cke-saved-src=\"/uploadImg/getpic?......
3.这是页面结果:
到第一个”>”处,input被结束,自然后面的内容就被当做html页面内容显示出来了,这时候再从js获取这个input的值就不是我们想要的东西了,在这种input的value值含有标签结束标志”>”时,如何才能不被结束呢?解决方法有两种:1.别把参数存在hidden里,存在缓存localStorage中;2.如果遇到必须存在hidden里的情况,可以用在js中赋值的形式去解决
4.解决方法:
1. 把参数存在缓存localStorage中:
在页面加入script块进行缓存,就像map一样,凭借key来存取
<script>
if(window.localStorage){
var dataKey = ${proId} + '_' + ${taskId} + '_tempdata';
localStorage[dataKey] = JSON.stringify(${sADTOListStr });
//这一行代码就把参数存入缓存了
}
</script>
js中:
var dataKey = proId + '_' + $("#sel_taskId").val() + '_tempdata';
var datastr = localStorage[dataKey];
//这一行代码从缓存中取出刚刚存入的参数
2. 如果遇到必须存在hidden里的情况,可以用在js中赋值的形式去解决:
控件定义时,先赋空值
<c:if test="${empty sADTOListStr == false}">
<input id="hd_sADTOListStr" value= "" type="hidden"/>
</c:if>
在script块中,赋值
<script>
$("#hd_singleAnalysisDTOListStr").val(JSON.stringify(${singleAnalysisDTOListStr }));
</script>
这样赋值,input的value内容就不会被浏览器解释了,所以页面上关于这个input就没啥体现,所以,就没有图拉,哈哈^_^