RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 595090
Accepted
ilya1099
ilya1099
Asked:2020-11-24 03:29:02 +0000 UTC2020-11-24 03:29:02 +0000 UTC 2020-11-24 03:29:02 +0000 UTC

修复 JS 代码

  • 772

有一个处理测试结果的JS代码(在网上找到的),但是如果测试中有5个问题,它就可以工作。我怎样才能做任何数量的问题?

function count()
{
var answer = 0;
var ball = 0;
var good = "";
var bad = "";
var solv = 1;
  for (var i=0; i<26; i++) {
  if (document.form1.elements[i].checked) {
    if (document.form1.elements[i].value != 0) {
          if (good != "") {
             good += ", "+solv;
          }
          else {
             good += "№ "+solv;
          }
       }
     else {
         if (bad != "") {
             bad += ", "+solv;
          }
          else {
             bad += "№ "+solv;
          }
     }
     solv++;
  }
}
for (var i=0; i<26; i++) {
    if (document.form1.elements[i].checked) {
      answer +=1;
    }
  }
 if (answer < 5) {
     alert("Вы не ответили на все вопросы теста!");
  }
  else {
     if (good == "") good = " нет :(";
     if (bad == "") bad = " нет =)";

var answer = "<span style=color:green>Решены правильно:</span> "+good+ "<br>";
if (bad == "нет") {  answer += "Неправильно: "+bad+"."; }
else { answer += "<span style=color:red>Неправильно:</span>"+bad+ "";}

if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) { 
  div1 = document.getElementById('div1');
} 
     div1.innerHTML = answer;
     div1.style.display = 'block';

     var paragraphs = document.all.tags('I');
     for (s=0; s< paragraphs.length; s++) {
             if (document.form1.elements[s].checked) {
                 paragraphs(s).style.fontWeight = 'bold';
                 if (document.form1.elements[s].value != 0) {
                     paragraphs(s).style.color = 'green';
                 }
                 else {
                     paragraphs(s).style.color = 'red';
                 }
              }
      }
  }
}
<form name="form1" class="test">
<p>1. Вопрос 1<br>
<input type="radio" name="a" value="1"><i>Вариант 1</i><br>
<input type="radio" name="a" value="0"><i>Вариант 2</i><br>
<input type="radio" name="a" value="0"><i>Вариант 3</i><br>
<input type="radio" name="a" value="0"><i>Вариант 4</i><br>
<input type="radio" name="a" value="0"><i>Вариант 5</i>
</p>
<p>2. Вопрос 2<br>
<input type="radio" name="b" value="0"><i>Вариант 1</i><br>
<input type="radio" name="b" value="0"><i>Вариант 2</i><br>
<input type="radio" name="b" value="0"><i>Вариант 3</i><br>
<input type="radio" name="b" value="1"><i>Вариант 4</i><br>
<input type="radio" name="b" value="0"><i>Вариант 5</i>

</p>
<p>3. Вопрос 3<br>
<input type="radio" name="c" value="0"><i>Вариант 1</i><br>
<input type="radio" name="c" value="1"><i>Вариант 2</i><br>
<input type="radio" name="c" value="0"><i>Вариант 3</i><br>
<input type="radio" name="c" value="0"><i>Вариант 4</i><br>
<input type="radio" name="c" value="0"><i>Вариант 5</i>

</p>
<p>4. Вопрос 4<br>
<input type="radio" name="d" value="0"><i>Вариант 1</i><br>
<input type="radio" name="d" value="0"><i>Вариант 2</i><br>
<input type="radio" name="d" value="0"><i>Вариант 3</i><br>
<input type="radio" name="d" value="1"><i>Вариант 4</i><br>
<input type="radio" name="d" value="0"><i>Вариант 5</i>

</p>
<p>5. Вопрос 5<br>
<input type="radio" name="f" value="0"><i>Вариант 1</i><br>
<input type="radio" name="f" value="0"><i>Вариант 2</i><br>
<input type="radio" name="f" value="0"><i>Вариант 3</i><br>
<input type="radio" name="f" value="1"><i>Вариант 4</i><br>
<input type="radio" name="f" value="0"><i>Вариант 5</i>

</p>
<div border="1" id="div1" style="padding:9px 0 11px 10px;margin:9px 17px;border:1px solid green;display:none;"></div>
<input type="button" value="Узнать результат" onclick="count();">
</form>

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    CodeGust
    2020-11-24T04:13:12Z2020-11-24T04:13:12Z

    专门针对这段html代码对原代码的更正:

    function count()
    {
    var answer = 0;
    var ball = 0;
    var good = "";
    var bad = "";
    var solv = 1;
      for (var i=0; i<36; i++) {
      if (document.form1.elements[i].checked) {
        if (document.form1.elements[i].value != 0) {
              if (good != "") {
                 good += ", "+solv;
              }
              else {
                 good += "№ "+solv;
              }
           }
         else {
             if (bad != "") {
                 bad += ", "+solv;
              }
              else {
                 bad += "№ "+solv;
              }
         }
         solv++;
      }
    }
    for (var i=0; i<36; i++) {
        if (document.form1.elements[i].checked) {
          answer +=1;
        }
      }
     if (answer < 7) {
         alert("Вы не ответили на все вопросы теста!");
      }
      else {
         if (good == "") good = " нет :(";
         if (bad == "") bad = " нет =)";
    
    var answer = "<span style=color:green>Решены правильно:</span> "+good+ "<br>";
    if (bad == "нет") {  answer += "Неправильно: "+bad+"."; }
    else { answer += "<span style=color:red>Неправильно:</span>"+bad+ "";}
    
    if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) { 
      div1 = document.getElementById('div1');
    } 
         div1.innerHTML = answer;
         div1.style.display = 'block';
    
         var paragraphs = document.all.tags('I');
         for (s=0; s< paragraphs.length; s++) {
                 if (document.form1.elements[s].checked) {
                     paragraphs(s).style.fontWeight = 'bold';
                     if (document.form1.elements[s].value != 0) {
                         paragraphs(s).style.color = 'green';
                     }
                     else {
                         paragraphs(s).style.color = 'red';
                     }
                  }
          }
      }
    }
    

    在循环中,26 - 添加我们的问题,我添加了 10(5 个问题的 2 个部分),即 我放了36个。哪里answer < 5 - 我们添加了 2 个部分,即 7成为。在 Html 中,每个问题组都应该有自己的独立name组 - 这表明选择的单选按钮组是一个块,用于从中选择一个元素。

    这是 Javascript 代码的改进版本(感谢 Grundy 对此的提示 :)),在向 Html 代码添加新问题块时无需手动更改任何内容:

    function count() {
      answer = 0;
      answerBlocksCount = document.form1.getElementsByTagName("p").length;
      questionsCount = document.form1.querySelectorAll('input[type=radio]').length + 1;
      var ball = 0;
      var good = "";
      var bad = "";
      var solv = 1;
    
      for (var i = 0; i < questionsCount; i++) {
        if (document.form1.elements[i].checked) {
          if (document.form1.elements[i].value != 0) {
            if (good != "") {
              good += ", " + solv;
            } else {
              good += "№ " + solv;
            }
          } else {
            if (bad != "") {
              bad += ", " + solv;
            } else {
              bad += "№ " + solv;
            }
          }
          solv++;
        }
      }
      for (var i = 0; i < questionsCount; i++) {
        if (document.form1.elements[i].checked) {
          answer += 1;
        }
      }
      if (answer < answerBlocksCount) {
        alert("Вы не ответили на все вопросы теста!");
      } else {
        if (good == "") good = " нет :(";
        if (bad == "") bad = " нет =)";
    
        var answer = "<span style=color:green>Решены правильно:</span> " + good + "<br>";
        if (bad == "нет") {
          answer += "Неправильно: " + bad + ".";
        } else {
          answer += "<span style=color:red>Неправильно:</span>" + bad + "";
        }
    
        if (navigator.userAgent.toLowerCase().indexOf("gecko") > 0) {
          div1 = document.getElementById('div1');
        }
        div1.innerHTML = answer;
        div1.style.display = 'block';
    
        var paragraphs = document.form1.getElementsByTagName("i").length;
        for (s = 0; s < paragraphs.length; s++) {
          if (document.form1.elements[s].checked) {
            paragraphs(s).style.fontWeight = 'bold';
            if (document.form1.elements[s].value != 0) {
              paragraphs(s).style.color = 'green';
            } else {
              paragraphs(s).style.color = 'red';
            }
          }
        }
      }
    }
    <form name="form1" class="test">
      <p>1. Вопрос 1
        <br>
        <input type="radio" name="a" value="1"><i>Вариант 1</i>
        <br>
        <input type="radio" name="a" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="a" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="a" value="0"><i>Вариант 4</i>
        <br>
        <input type="radio" name="a" value="0"><i>Вариант 5</i>
      </p>
      <p>2. Вопрос 2
        <br>
        <input type="radio" name="b" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="b" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="b" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="b" value="1"><i>Вариант 4</i>
        <br>
        <input type="radio" name="b" value="0"><i>Вариант 5</i>
    
      </p>
      <p>3. Вопрос 3
        <br>
        <input type="radio" name="c" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="c" value="1"><i>Вариант 2</i>
        <br>
        <input type="radio" name="c" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="c" value="0"><i>Вариант 4</i>
        <br>
        <input type="radio" name="c" value="0"><i>Вариант 5</i>
    
      </p>
      <p>4. Вопрос 4
        <br>
        <input type="radio" name="d" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="d" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="d" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="d" value="1"><i>Вариант 4</i>
        <br>
        <input type="radio" name="d" value="0"><i>Вариант 5</i>
    
      </p>
      <p>5. Вопрос 5
        <br>
        <input type="radio" name="f" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="f" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="f" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="f" value="1"><i>Вариант 4</i>
        <br>
        <input type="radio" name="f" value="0"><i>Вариант 5</i>
    
      </p>
      <p>6. Вопрос 6
        <br>
        <input type="radio" name="h" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="h" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="h" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="h" value="1"><i>Вариант 4</i>
        <br>
        <input type="radio" name="h" value="0"><i>Вариант 5</i>
    
      </p>
      <p>7. Вопрос 7
        <br>
        <input type="radio" name="j" value="0"><i>Вариант 1</i>
        <br>
        <input type="radio" name="j" value="0"><i>Вариант 2</i>
        <br>
        <input type="radio" name="j" value="0"><i>Вариант 3</i>
        <br>
        <input type="radio" name="j" value="1"><i>Вариант 4</i>
        <br>
        <input type="radio" name="j" value="0"><i>Вариант 5</i>
    
      </p>
      <div border="1" id="div1" style="padding:9px 0 11px 10px;margin:9px 17px;border:1px solid green;display:none;"></div>
      <input type="button" value="Узнать результат" onclick="count();">
    </form>

    • -1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何停止编写糟糕的代码?

    • 3 个回答
  • Marko Smith

    onCreateView 方法重构

    • 1 个回答
  • Marko Smith

    通用还是非通用

    • 2 个回答
  • Marko Smith

    如何访问 jQuery 中的列

    • 1 个回答
  • Marko Smith

    *.tga 文件的组重命名(3620 个)

    • 1 个回答
  • Marko Smith

    内存分配列表C#

    • 1 个回答
  • Marko Smith

    常规赛适度贪婪

    • 1 个回答
  • Marko Smith

    如何制作自己的自动完成/自动更正?

    • 1 个回答
  • Marko Smith

    选择斐波那契数列

    • 2 个回答
  • Marko Smith

    所有 API 版本中的通用权限代码

    • 2 个回答
  • Martin Hope
    jfs *(星号)和 ** 双星号在 Python 中是什么意思? 2020-11-23 05:07:40 +0000 UTC
  • Martin Hope
    hwak 哪个孩子调用了父母的静态方法?还是不可能完成的任务? 2020-11-18 16:30:55 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    Arch ArrayList 与 LinkedList 的区别? 2020-09-20 02:42:49 +0000 UTC
  • Martin Hope
    iluxa1810 哪个更正确使用:if () 或 try-catch? 2020-08-23 18:56:13 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5