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>
那位 大神 帮忙简化一下   十分感谢~~~!

解决方案 »

  1.   

    只能对前面那段进行优化,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;");
     }
    }
      

  2.   

    第一部分可以实现 但是 for(j=0; j<5;j++)
     {
      eval("if (form.c"+i+"["+j+"].checked==1) xf"+i+"=0;");
     }
    这一部分实现不了啊 麻烦再帮 弄一下 
      

  3.   

    我这电脑没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,'躯体症状表现中等。');
      

  4.   


    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,'躯体症状表现中等。');
      

  5.   

    又改了一下,添加了注释,我用记事本写的,也许会有语法方面的疏漏,见谅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,'躯体症状表现中等。');