如何用润乾报表做单选打分类选择题
在大型电子商务平台不难见到对平台满意度的调查,例如对售后态度的调查,这些选择题有一个特点,多个选项,在没有做出选择填写分数时,各个选项都可以写,但是一旦做出选择后,本题的剩余选择不可以填写,除非清空本题的选中数据。如果只是选择题,可以用润乾报表里的单选按钮去实现,可是如果涉及到对每一项进行打分的情况,单选按钮则不适用了。本文简单介绍一下,如何用javaScript去实现类似单选打分类型选择题。
第一步:制作一张报表;
第二步:用_cellValueChanged监听每一个单元格,当单元格内容发生改变后,设置其余四个选择不可写。
function _cellValueChanged(cell){
var val1=cell.id.substr(8,1);
if(cell.id.substr(8,1)==”B” && (cell.value==1 || cell.value==null || cell.value==”)){
if(cell.id.length==10){
var val2=cell.id.substr(9,1);
}else{
var val2=cell.id.substr(9,2);
}
//alert(cell.value);
var val3=document.getElementById()
for(var i=67;i<=69;i++){
var col=String.fromCharCode(i);
//alert(“col====”+col);
var cellid=”report1_”+col+val2;
if(cell.id.substr(8,1)==”B” && cell.value==1){
document.getElementById(cellid).writable = false;
}else{
document.getElementById(cellid).writable = true;
}
}
}
else if(cell.id.substr(8,1)==”C” && (cell.value==1 || cell.value==null || cell.value==”)){
if(cell.id.length==10){
var val2=cell.id.substr(9,1);
}else{
var val2=cell.id.substr(9,2);
}
for(var i=68;i<=69;i++){
var col=String.fromCharCode(i);
var cellid=”report1_”+col+val2;
if(cell.id.substr(8,1)==”C” && cell.value==1){
document.getElementById(cellid).writable = false;
document.getElementById(“report1_B”+val2).writable = false;
}else{
document.getElementById(cellid).writable = true;
document.getElementById(“report1_B”+val2).writable = true;
}
}
}
else if(cell.id.substr(8,1)==”D” && (cell.value==1 || cell.value==null || cell.value==”)){
if(cell.id.length==10){
var val2=cell.id.substr(9,1);
}else{
var val2=cell.id.substr(9,2);
}
for(var i=66;i<=67;i++){
var col=String.fromCharCode(i);
var cellid=”report1_”+col+val2;
if(cell.id.substr(8,1)==”D” && cell.value==1){
document.getElementById(cellid).writable = false;
document.getElementById(“report1_E”+val2).writable = false;
}else{
document.getElementById(cellid).writable = true;
document.getElementById(“report1_E”+val2).writable = true;
}
}
}
}
注:以上是部分代码。
预览效果如下:
如图所示:当办公室的服务态度没有被选中时,ABCD四个选项都可以选,但是当A被选中后,BCD都不可写,只有当A里的值被删除后,ABCD又都回复可写。