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