帮一下 JS 的

wklhl 2012-08-07 06:24:01
var xf1=0;
.....(90个)
var xf90=0;


if (form.c1[0].checked==1) xf1==0;
if (form.c1[1].checked==1) xf1==1;
if (form.c1[2].checked==1) xf1==2;
if (form.c1[3].checked==1) xf1==3;
if (form.c1[4].checked==1) xf1==4;
........(90个)
if (form.c90[0].checked==1) xf90==0;
if (form.c90[1].checked==1) xf90==1;
if (form.c90[2].checked==1) xf90==2;
if (form.c90[3].checked==1) xf90==3;
if (form.c90[4].checked==1) xf90==4;

if (xf1+xf4+xf12+xf27+xf40+xf42+xf48+xf49+xf52+xf53+xf56+xf58<12) form.answer1.value="躯体症状表现不明显。";
if (xf1+xf4+xf12+xf27+xf40+xf42+xf48+xf49+xf52+xf53+xf56+xf58>=12 && xf1+xf4+xf12+xf27+xf40+xf42+xf48+xf49+xf52+xf53+xf56+xf58<=24) form.answer1.value="躯体症状表现中等。";
if (xf1+xf4+xf12+xf27+xf40+xf42+xf48+xf49+xf52+xf53+xf56+xf58>24) form.answer1.value="躯体症状表现很明显。";
if (xf3+xf9+xf10+xf28+xf38+xf45+xf46+xf51+xf55+xf65<10) form.answer2.value="强迫症状表现不明显。";
if (xf3+xf9+xf10+xf28+xf38+xf45+xf46+xf51+xf55+xf65>=10 && xf3+xf9+xf10+xf28+xf38+xf45+xf46+xf51+xf55+xf65<=20) form.answer2.value="强迫症状表现中等。";
if (xf3+xf9+xf10+xf28+xf38+xf45+xf46+xf51+xf55+xf65>20) form.answer2.value="强迫症状表现很明显。";
if (xf6+xf21+xf34+xf36+xf37+xf41+xf61+xf69+xf73<9) form.answer3.value="个体在人际关系上较为正常。";
if (xf6+xf21+xf34+xf36+xf37+xf41+xf61+xf69+xf73>=9 && xf6+xf21+xf34+xf36+xf37+xf41+xf61+xf69+xf73<=18) form.answer3.value="个体在人际关系上为中等。";
if (xf6+xf21+xf34+xf36+xf37+xf41+xf61+xf69+xf73>18) form.answer3.value="个体在人际关系上较为敏感。";
if (xf5+xf14+xf15+xf20+xf22+xf26+xf29+xf30+xf31+xf32+xf54+xf71+xf79<13) form.answer4.value="个体抑郁程度较弱。";
if (xf5+xf14+xf15+xf20+xf22+xf26+xf29+xf30+xf31+xf32+xf54+xf71+xf79>=13 && xf5+xf14+xf15+xf20+xf22+xf26+xf29+xf30+xf31+xf32+xf54+xf71+xf79<=26) form.answer4.value="个体抑郁程度中等。";
if (xf5+xf14+xf15+xf20+xf22+xf26+xf29+xf30+xf31+xf32+xf54+xf71+xf79>26) form.answer4.value="个体抑郁程度较强。";
if (xf2+xf17+xf23+xf33+xf39+xf57+xf72+xf78+xf80+xf86<10) form.answer5.value="个体不易焦虑。";
if (xf2+xf17+xf23+xf33+xf39+xf57+xf72+xf78+xf80+xf86>=10 && xf2+xf17+xf23+xf33+xf39+xf57+xf72+xf78+xf80+xf86<=20) form.answer5.value="个体焦虑中等。";
if (xf2+xf17+xf23+xf33+xf39+xf57+xf72+xf78+xf80+xf86>20) form.answer5.value="个体极易焦虑。";
if (xf11+xf24+xf63+xf67+xf74+xf81<6) form.answer6.value="个体容易表现出友好的思想、情感和行为。";
if (xf11+xf24+xf63+xf67+xf74+xf81>=6 && xf11+xf24+xf63+xf67+xf74+xf81<=12) form.answer6.value="个体的思想、情感和行为不易波动。";
if (xf11+xf24+xf63+xf67+xf74+xf81>12) form.answer6.value="个体容易表现出敌对的思想、情感和行为。";
if (xf13+xf25+xf47+xf50+xf70+xf75+xf82<28) form.answer7.value="恐惧对象有旅行、空旷场地、人群和公共场所,还有社交恐惧。";
if (xf8+xf18+xf43+xf68+xf76+xf83<7) form.answer8.value="个体恐怖症状不明显。";
if (xf8+xf18+xf43+xf68+xf76+xf83>=7 && xf8+xf18+xf43+xf68+xf76+xf83<=14) form.answer8.value="个体恐怖症状中等。";
if (xf8+xf18+xf43+xf68+xf76+xf83>14) form.answer8.value="个体恐怖症状较为明显。";
if (xf7+xf16+xf35+xf62+xf77+xf84+xf85+xf87+xf88+xf90<10) form.answer9.value="个体精神病性症状不明显。";
if (xf7+xf16+xf35+xf62+xf77+xf84+xf85+xf87+xf88+xf90>=10 && xf7+xf16+xf35+xf62+xf77+xf84+xf85+xf87+xf88+xf90<=20) form.answer9.value="个体精神病性症状中等。";
if (xf7+xf16+xf35+xf62+xf77+xf84+xf85+xf87+xf88+xf90>20) form.answer9.value="个体精神病性症状较为明显。";
}

</script>
那位 大神 帮忙简化一下 十分感谢~~~!
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzizuodesi 2012-08-08
  • 打赏
  • 举报
回复
楼主很幸福,能得到这么详细的答案
gr1532879 2012-08-07
  • 打赏
  • 举报
回复
又改了一下,添加了注释,我用记事本写的,也许会有语法方面的疏漏,见谅

function score(items,field,showValue){
for(var i = 0 ; i < (items.length; i++){//循环条件
var sum = 0;
for(var j = 0 ;j < (items[i]['items'].length;j++){ //获取每个条件中的所有组件编号
sum+=window['xf'+(items[i]['items'][j]]; //根据组件编号求和
}
eval('if(!(sum'+items[i]['condition']+'value))return;');//之前用的switch,这个不知道行不行,条件都是并存,如果有一个不匹配就返回
}
field.value = showValue; //如果没有返回说明条件通过,则将接受的组件赋值
}

for(var i = 1;i <= 90;i++){//循环初始化变量
window['xf'+i]=0;
}

for(var i = 1;i <= 90;i++){//循环组件
for(var j = 0;j <= 4 ;j++){ //循环每个组的组件,已知为5个
if(form['c'+i][j]==1){//如果组件被选择则返回,否则对应变量自增
break;
}else{
window['xf'+i]++;
}
}
}
//具体调用,单个条件
score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<',
'value':12
}],form.answer1,'躯体症状表现不明显。');
//具体调用,两个条件
score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'>=',
'value':12
},{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<=',
'value':24
}],form.answer1,'躯体症状表现中等。');
gr1532879 2012-08-07
  • 打赏
  • 举报
回复

function score(items,field,showValue){
for(var i = 0 ; i < (items.length; i++){
var sum = 0;
for(var j = 0 ;j < (items[i]['items'].length;j++){
sum+=window['xf'+(items[i]['items'][j]];
}
switch(items[i]['condition']){
case '=':
if(sum != items[i]['value'])return;
break
case '>':
if(sum <= items[i]['value')return;
break
case '<':
if(sum >= items[i]['value')return;
break
case '>=':
if(sum < items[i]['value')return;
break
case '<=':
if(sum > items[i]['value')return;
break
}
}
field.value = showValue;
}

for(var i = 1;i <= 90;i++){
window['xf'+i]=0;
}

for(var i = 1;i <= 90;i++){
for(var j = 0;j <= 4 ;j++){
if(form['c'+i][j]==1){
break;
}else{
window['xf'+i]++;
}
}
}

score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<',
'value':12
}],
form.answer1,'躯体症状表现不明显。');
score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'>=',
'value':12
},{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<=',
'value':24
}],
form.answer1,'躯体症状表现中等。');
gr1532879 2012-08-07
  • 打赏
  • 举报
回复
我这电脑没ide 用记事本写的 肯能有问题 我也没办法测试 试试看把

function score(items,field,showValue){
for(var i = 0 ; i < (items.length; i++){
var sum = 0;
for(var j = 0 ;j < (items[i]['items'].length;j++){
sum+=window['xf'+(items[i]['items'][j]];
}
switch(items[i]['condition']){
case '=':
if(sum != items[i]['value'])return;
break
case '>':
if(sum <= items[i]['value')return;
break
case '<':
if(sum >= items[i]['value')return;
break
case '>=':
if(sum < items[i]['value')return;
break
case '<=':
if(sum > items[i]['value')return;
break
}
}
field.value = showValue;
}

for(var i = 1;i <= 90;i++){
window['xf'+i]=0;
}

for(var i = 1;i <= 90;i++){
for(var j = 0;j <= 4 ;j++){
if(form['c'+i][j]==1){
break;
}else{
window['xf'+i]++;
}
}
}

score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<',
'value':12
}],
form.answer1,'躯体症状表现不明显。');
score(
[{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'>=',
'value':12
},{
'items':[1,4,12,27,40,42,48,49,52,53,56,58],
'condition':'<=',
'value':24
}],
form.answer1,'躯体症状表现中等。');
AMinfo 2012-08-07
  • 打赏
  • 举报
回复
form.c这些表单要存在才行。
gr1532879 2012-08-07
  • 打赏
  • 举报
回复
这代码写的。。。。。太乱了把。。。。
wklhl 2012-08-07
  • 打赏
  • 举报
回复
第一部分可以实现 但是 for(j=0; j<5;j++)
{
eval("if (form.c"+i+"["+j+"].checked==1) xf"+i+"=0;");
}
这一部分实现不了啊 麻烦再帮 弄一下
AMinfo 2012-08-07
  • 打赏
  • 举报
回复
只能对前面那段进行优化,

var xf1=0;
.....(90个)
var xf90=0;


if (form.c1[0].checked==1) xf1==0;
if (form.c1[1].checked==1) xf1==1;
if (form.c1[2].checked==1) xf1==2;
if (form.c1[3].checked==1) xf1==3;
if (form.c1[4].checked==1) xf1==4;
........(90个)
if (form.c90[0].checked==1) xf90==0;
if (form.c90[1].checked==1) xf90==1;
if (form.c90[2].checked==1) xf90==2;
if (form.c90[3].checked==1) xf90==3;
if (form.c90[4].checked==1) xf90==4;

这段优化为

for(i=0;i<91;i++)
{
eval("var xf"+i+" = 0;");

for(j=0; j<5;j++)
{
eval("if (form.c"+i+"["+j+"].checked==1) xf"+i+"=0;");
}
}

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧