javascript - Angular - 无法验证单选按钮的形式

标签 javascript angularjs forms angularjs-ng-form

我有一个只有单选按钮的表单,必须在提交之前验证表单(用户必须选择某些内容)。用户选择单选按钮后,应使用 ngclass 应用一些样式。我有两个问题:
1.由于某种原因,默认选择最后一个选项。
2.我无法获取表单验证属性。当我选择其中的内容时,数据不会刷新。

plunkr

JS:

app.controller('MainCtrl', function($scope) {

  $scope.questionObject = [{
    "body": "abc"
  }, {
    "body": "def"
  }, {
    "body": "aghi"
  } ]
  $scope.selectAnswer=function(number,obj)
  {
    $scope.isChecked=number;
}
});

HTML:

  <div class="form-group" ng-form="form">
    <div class="col-lg-8 col-lg-offset-2 col-sm-12">
      <div class="row" ng-repeat="obj in questionObject track by $index">
        <div class="radio">
          <label class="choice" ng-class="{'choiceSelected': isChecked==$index}">
            <input type="radio"
                  name="optradio" 
                  ng-click="selectAnswer($index,questionObject.correct_answer)"
                  ng-model="radioInput">{{obj.body}}
          </label>
        </div>
      </div>
    </div>
  </div>
  <pre>
   dirty:{{form.$dirty}}
   pristine:{{form.$pristine}}
  </pre>

编辑 这是表单输出。永远不会更新

   {
  "$error": {},
  "$name": "form",
  "$dirty": false,
  "$pristine": true,
  "$valid": true,
  "$invalid": false,
  "$submitted": false
}

最佳答案

尝试这样。查找单选按钮的 ng-model 和 ng-required 属性。

<div name="myForm" novalidate ng-form>
    <div class="col-lg-8 col-lg-offset-2 col-sm-12">
      <div class="row" ng-repeat="obj in questionObject track by $index">
        <div class="radio">
          <label class="choice" ng-class="{'choiceSelected': isChecked==$index}">
        <input type="radio" name="optradio" ng-click="selectAnswer($index,questionObject.correct_answer)" ng-model="data.option" ng-value="obj.body" ng-required="data.option == ''">{{obj.body}}
      </label>

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

  <pre>
     dirty:{{myForm.$dirty}}
     pristine:{{myForm.$pristine}}
     $valid:{{myForm.$valid}}
     $invalid:{{myForm.$invalid}}
  </pre>

笨蛋:https://plnkr.co/edit/crpV5QnSGdSv6rUBnTnR?p=preview

关于javascript - Angular - 无法验证单选按钮的形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085476/

相关文章:

html - 两个图像在彼此之上

angularjs - Angular 数据表中的多重分组

php - 将用户输入从文本框插入数据库(使用 mysql 将 PHP 插入 PHPMYADMIN) 代码由于某种原因不起作用

twitter-bootstrap - 跳过某些 Bootstrap 4 输入的验证反馈

javascript - Web 应用程序中绘图的 Google 柱形图错误

javascript - 如果字符放置在字符串(数组)中,则将字符串值分配给字符

javascript - 为什么javascript方法最后执行?

javascript - 如何使用javascript在html中添加、删除div或span?

javascript - Angular JS - 当一个数组中特定键中的值也显示为另一个数组中特定键中的值时进行过滤

java - 使用 JSP 和 Servlet 进行密码验证