如何检查提交的单选按钮是否包含正确的答案

时间:2016-07-20 21:18:42

标签: javascript html css angularjs

我正在尝试做一个简单的测验。 到目前为止,我已经构建了随机调用可能问题数组的代码。现在我想让用户提交选中的单选框并查明提交的选项是否正确。

我想检查一下我需要将提交的选项与" Correct"进行比较。回答数据集内部。在数据集(字典)中,我有"类别","不正确","正确"等等。所以只有当提交的选项等于&#时34;正确"句子,用户将收到消息说“正确答案”。



(function(angular) {

  'use strict';

  angular.module('demo', [])
    .controller('repeatController', function($scope) {
      $scope.questions = {
        "0": {
          "Category": "Commas",
          "Correct": "Shirley Chisholm was the first major-party candidate to run for President in a major party. She ran as a Democrat.ANSWER",
          "Given_sen": "\"Shirley Chisholm was the first major party candidate to run for President in a major party, she ran as a Democrat.\"",
          "Incorrect": [
            "\"Shirley Chisholm, the first major-party candidate to run for President in a major party, she ran as a Democrat.\"",
            "Shirley Chisholm was the first major-party candidate to run for President in a major party: she ran as a Democrat.",
            "Shirley Chisholm was the first major-party candidate to run for President in a major party (she ran as a Democrat)."
          ],
          "Question": "Fix the comma splice.",
          "Rule": "comma splice\n"
        },


        "1": {
          "Category": "Commas",
          "Correct": "Hattie McDaniel was the first African-American to win an Oscar. She won for her performance in Gone with the Wind.",
          "Given_sen": "\"Hattie McDaniel was the first African-American to win an Oscar, she won for her performance in Gone with the Wind.\"",
          "Incorrect": [
            "Hattie McDaniel was the first African-American to win an Oscar: she won for her performance in Gone with the Wind.",
            "\"Hattie McDaniel, the first African-American to win an Oscar, she won for her performance in Gone with the Wind.\"",
            "\"Hattie McDaniel was the first African-American to win an Oscar, for her performance in Gone with the Wind.\""
          ],
          "Question": "Fix the comma splice.",
          "Rule": "comma splice\n"
        }
      };

      function sort(array) {
        return array.sort(function() {
          return .5 - Math.random();
        });
      }

      <!-- add correct answer to incorrect answer array and srot it randomly.-->
      function random() {
        for (var key in $scope.questions) {
          $scope.questions[key].Incorrect.push($scope.questions[key].Correct);
          $scope.questions[key].Incorrect = sort($scope.questions[key].Incorrect);
        }
      }

      random();
    });
})(angular);

function myFunction() {
  var x = document.createElement("BUTTON");
  var t = document.createTextNode("Click me");
  x.appendChild(t);
  document.body.appendChild(x);
}
&#13;
<!DOCTYPE html>
<html ng-app="demo">

<head>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>

<body ng-controller="repeatController">

  <nav class="navbar navbar-inverse navbar-static-top">
    <div class="container-fluid">


      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
			<span class="icon-bar"></span>                    
		</button>
      </div>
      <div>
        <div class="collapse navbar-collapse" id="myNavbar">

          <ul class="nav navbar-nav navbar-right">
            <li><a href="About_us.html"><span class="glyphicon glyphicon-check"></span> ABOUT US</a></li>
            <li><a href="Contact_Info.html"><span class="glyphicon glyphicon-envelope"></span>CONTACT INFO</a></li>
          </ul>

        </div>
      </div>
    </div>
  </nav>

  <form ng-repeat="question in questions">
    <div class="col-md-12">
      <div class="well"><b> QUESTION: {{question.Question}}</b>
        <br> Category: {{question.Category}} </div>
      <div class="radio" ng-repeat="incorrect_answer in question.Incorrect">
        <label>
          <input type="radio" name="radio{{$parent.$index}}" value="{{incorrect_answer}}"> {{incorrect_answer}}
        </label>
      </div>
      <!--
      <div class="form-group">
        <label class="radio-inline">
          <input type="radio"> {{question.Correct}}
        </label>
      </div>
-->
      <div class="form-group" onsubmit="TestFunction()">
        <input class="btn btn-primary" type="submit" value="Submit">
      </div>
    </div>
  </form>
</body>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

您可以使用# True as long as we are reading the first file, name.txt NR==FNR { # Store the names in the array 'n' n[$0] next } # I use substr() to remove the leading `>` and check if the remaining # string which is the name is a key of `n`. getline retrieves the next line # If it succeeds the condition becomes true and awk will print that line substr($0,2) in n && getline 检查值属性。所以:

myElement.getAttribute('value')

你也可以获取具有相同名称属性值的所有单选按钮,然后循环遍历它们,查看它们的var correctAnswer = 'apples'; var myRadio = document.getElementById('myRadio'); var isCorrect = myRadio.getAttribute('value') === correctAnswer; console.log('is correct? ' + isCorrect); 属性,并且(如果选中)打破循环并返回该无线电的{{1} }。

答案 1 :(得分:0)

首先,您需要在ng-model中使用radio button,如果ng-submit中的所选按钮等于正确答案,您只需使用index进行检查即可如下:

(function(angular) {
  'use strict';
  angular
    .module('demo', [])
    .controller('repeatController', repeatController);

  function repeatController($scope) {
    $scope.radio = [];
    $scope.message = [];

    $scope.questions = {
      "0": {
        "Category": "Commas",
        "Correct": "Shirley Chisholm was the first major-party candidate to run for President in a major party. She ran as a Democrat.ANSWER",
        "Given_sen": "\"Shirley Chisholm was the first major party candidate to run for President in a major party, she ran as a Democrat.\"",
        "Incorrect": [
          "\"Shirley Chisholm, the first major-party candidate to run for President in a major party, she ran as a Democrat.\"",
          "Shirley Chisholm was the first major-party candidate to run for President in a major party: she ran as a Democrat.",
          "Shirley Chisholm was the first major-party candidate to run for President in a major party (she ran as a Democrat)."
        ],
        "Question": "Fix the comma splice.",
        "Rule": "comma splice\n"
      },


      "1": {
        "Category": "Commas",
        "Correct": "Hattie McDaniel was the first African-American to win an Oscar. She won for her performance in Gone with the Wind.",
        "Given_sen": "\"Hattie McDaniel was the first African-American to win an Oscar, she won for her performance in Gone with the Wind.\"",
        "Incorrect": [
          "Hattie McDaniel was the first African-American to win an Oscar: she won for her performance in Gone with the Wind.",
          "\"Hattie McDaniel, the first African-American to win an Oscar, she won for her performance in Gone with the Wind.\"",
          "\"Hattie McDaniel was the first African-American to win an Oscar, for her performance in Gone with the Wind.\""
        ],
        "Question": "Fix the comma splice.",
        "Rule": "comma splice\n"
      }
    };

    function sort(array) {
      return array.sort(function() {
        return .5 - Math.random();
      });
    }

    function random() {
      for (var key in $scope.questions) {
        $scope.questions[key].Incorrect.push($scope.questions[key].Correct);
        $scope.questions[key].Incorrect = sort($scope.questions[key].Incorrect);
      }
    }

    random();

    $scope.submit = function(index) {
      if ($scope.questions[index].Correct == $scope.radio.selected[index]) {
        $scope.message[index] = "Correct";
      } else {
        $scope.message[index] = "Incorrect";
      }
    }
  }
})(angular);
<!DOCTYPE html>
<html ng-app="demo">

<head>
  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>

<body ng-controller="repeatController">
  <nav class="navbar navbar-inverse navbar-static-top">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
          <span class="icon-bar"></span>
        </button>
      </div>
      <div>
        <div class="collapse navbar-collapse" id="myNavbar">
          <ul class="nav navbar-nav navbar-right">
            <li><a href="About_us.html"><span class="glyphicon glyphicon-check"></span> ABOUT US</a></li>
            <li><a href="Contact_Info.html"><span class="glyphicon glyphicon-envelope"></span>CONTACT INFO</a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
  <form name="form" novalidate ng-repeat="question in questions" ng-submit="submit($index)">
    <div class="col-md-12">
      <div class="well"><b> QUESTION: {{question.Question}}</b>
        <br> Category: {{question.Category}} </div>
      <div class="radio" ng-repeat="incorrect_answer in question.Incorrect">
        <label>
          <input type="radio" ng-model="radio.selected[$parent.$index]" ng-value="incorrect_answer" name="radio{{$parent.$index}}"> {{incorrect_answer}}
        </label>
      </div>
      <div class="form-group">
        <input class="btn btn-primary" type="submit" value="Submit">
        <span ng-class="{ 'text-success': message[$index] == 'Correct', 'text-danger': message[$index] == 'Incorrect' }" ng-if="message[$index]" ng-bind="message[$index]"></span>
      </div>
    </div>
  </form>
</body>

相关问题