javascript和的结合使用

当你和数据库交互数据的时候,我们可能在一个字段里存了很多信息,并且使用符号分隔开来,那么怎样才能分别得到每一段的信息呢?

比如说当你分期付款的时候,可能分好几个期次,那么我们应该怎么将他们分隔开,并且在现实的时候显示出已经选中的:  

<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;
}
}

希望对大家有帮助!!!

你可能感兴趣的:(js,扩大)