html中对hidden状态input控件进行赋值,而赋的值中包含标签,例如"",这样的话>就会导致input控件被截断!

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就没啥体现,所以,就没有图拉,哈哈^_^
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章