这几天被上述问题搞疯了,各种百度,就是解决不了,然后今天才知道以前的项目有这个功能,于是看了一下源码,解决了。
总结一下:
首先第一个问题,JQ控制函数的执行
是根据单选框的值,决定是否执行函数
首先把函数写出来
function show(){内容根据项目};
function hide(){内容根据项目};
然后 就是重点了
$(document).ready(function() {
var ifmodel = "${seal.ifModel}";
if(ifmodel == "0"){
show();
}else{
hide()
}
});
这样就可以控制函数的执行了
然后,根据后台的值选中checkbox
var configuration= "${seal.configuration}" ; // 根据EL获取后台传过来的值
var configurations = new Array(); // 定义一个数组,因为是checkbox 所有有很多相同的name
configurations = configuration.split(","); //因为checkbox的value传到数据库的时候,多个值之间是有,的
var peizhi = document.getElementsByName ("configuration"); //根据name获取标签 因为有多个相同的name,所以是一个数组
for( var i=0;i<peizhi.length;i++){ //对于每一个checkbox的id
if(peizhi[i].value == configurations[0]){ // 判断checkbox的value与后台传来的值进行比较,
document.getElementById(peizhi[i].id).checked = true; //根据id,选中
}
if(peizhi[i].value == configurations[1]){
document.getElementById(peizhi[i].id).checked = true;
}
if(peizhi[i].value == configurations[2]){
document.getElementById(peizhi[i].id).checked = true;
}
}
这就是大概了,所有的东西,写在js里
<td>是否需要客户提供信息</td>
<td><input name="ifModel" id = "ifModel_1" type="radio" value = "0"
<c:if test = "${seal.ifModel eq '0'}"> checked </c:if> onchange = "show();">是
<input name="ifModel" id = "ifModel_2" type="radio" value = "1"
<c:if test = "${seal.ifModel eq '1'}"> checked </c:if> onchange = "hide();">否</td>
如果想点击一个redio,然后执行某个函数,就用用onchange
为什么onclick不行,估计是因为value值发生了改变吧,我也是猜的