javascript和<c:out value=""/>的結合使用

當你和數據庫交互數據的時候,我們可能在一個字段裏存了很多信息,並且使用符號分隔開來,那麼怎樣才能分別得到每一段的信息呢?

比如說當你分期付款的時候,可能分好幾個期次,那麼我們應該怎麼將他們分隔開,並且在現實的時候顯示出已經選中的:  

<input type="checkbox" name="stage1" id="stagei1" value='1期'  type="checkbox" name="stage2" id="stagei3" value='3期'  type="checkbox" name="stage3" id="stagei6" value='6期'  type="checkbox" name="stage4" id="stagei12" value='12期'  type="checkbox" name="stage5" id="stagei24" value='24期' onclick="check(this,'checkbox33','24')"/>24期
上面這段表示分期的checkbox。
當你從數據庫得到數據的時候,可以通過<c:out value=""/>得到,這個時候可以用隱藏表單域,使頁面美觀。而且數據也會記錄在表單域中,這樣也方便提取。
<input type="hidden" id="inputid" name="bill" value='<c:out value="${form.bill}"/>'/>

當我們選擇了多個期數的時候(這裏的期數使用的是數字1、3、6、12、24表示,並且用逗號分隔開。如:1,3)

那麼一段字符串怎麼樣得到並分割呢?

可以直接把<c:out value=""/>的數據複製給一個變量,用split進行分割,可以加一段字符串驗證一下

<script language=Javascript >
function checkstage(){
var bill ='<c:out value="${form.stage}"/>';
var list =bill. split(',' );
for(var i=0 ;i< list.length ;i++){
if(!isStringNull (list[i]))
document.getElementById ("stagei"+list[i] ).checked= true;
}
}
</script>

這樣當你選擇多個的時候,也會顯示出你選擇的;別忘了在body裏面加載onload="checkstage();"

上面if裏面的判斷是否爲空的函數是我寫在一個js文件裏的,如下:

/**
* 是否爲空
* @param {Object} v
* @return {TypeName}
*/
function isStringNull(v){
if(v == null || v.replace(/\s/g, "") == ''){
return true;
}else{
return false;
}
}

希望對大家有幫助!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章