javascript - 使用 NG-repeat 制作带有多个单选按钮的表单 : want to reset the value of all the radio buttons

标签 javascript html angularjs radio-button ng-repeat

我遇到了 Angular 的问题;我有多个 Actor ,每个 Actor 都呈现一个单选框表单,其中包含 3 个选项:受害者、肇事者和两者。

相关模板:

        <div class="actor" ng-repeat="activeActor in activeActors">                                                 
          <p class="category">{{activeActor}}</p>
          <form name="radioButtonForm">
            <div class="causerRadioForm">
              <input type="radio" name="causerRadio" value="victum" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'victum')">
            </div>

            <div class="causerRadioForm">
              <input type="radio" name="causerRadio"  value="causer" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'causer')">
            </div>

            <div class="causerRadioForm">
              <input type="radio"  name="causerRadio" value="both" ng-model="defaultRadioButton" ng-click="setActorCauser(activeActor, 'both')">
            </div>

          </form>

        </div>

这工作正常,但我有一个按钮,如果我点击它,多个 Actor (称为 fastActors)将被渲染并具有默认值 victum。

问题是,当我选择一个 actor 并将其放入 cause,然后单击 fastActors 时,单选框保持在 causer 而单选按钮应重置为 victum。

相关JS

$scope.toggleFastTraffic = function(actor){
  //erase all actors 
  $scope.actors = [];
  $scope.report.traffic_players = [];
  //default value for radio boxes
  $scope.defaultRadioButton = "victum";


  $scope.SlowTraffic = false;
  $scope.FastTraffic = true;
  $scope.formOptionsExpanded = true;
  $scope.activeActors = [];

  var i = $scope.activeActors.indexOf(actor);
  console.log($scope.activeActors.indexOf(actor));
  if ($scope.counter === -1){

   //do more here
}

基本上,在我按下 toggleFastActor 的那一刻,我希望让所有单选按钮成为 victum。

亲切的问候,

附言我知道我奉命保留那个 victum 错字 :P

这是一个快速的代码笔,它还没有完成,但它确实包含错误:如果你按下汽车并使其成为一个原因,然后切换快速交通,汽车就会在报告中成为受害者(这很好)但是单选按钮不会改变。

P.s codepen还有一些其他的bug,不用关注那些。

http://codepen.io/CMD-Thomas/pen/yNbNaZ?editors=101

最佳答案

发生这种情况是因为 ng-model 值相同。一旦将“defaultRadioButton”的值设置为“causer”,它将仍然是所有人的原因。记住 MVVM 模式

关于javascript - 使用 NG-repeat 制作带有多个单选按钮的表单 : want to reset the value of all the radio buttons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662090/

相关文章:

javascript - Vue/Javascript - 编写这个三元组的最佳方式

javascript 数字拆分

jquery - 是否可以让 Pretty Photo Js 在打开单个图像时显示图像序列?

javascript - 为什么我的函数没有显示在 html 页面中?

javascript - AngularJS 应用程序无法在 github 页面上运行

javascript - 原始 MVC 和 Angular 避免注入(inject)我不需要的东西

angularjs - Restangular - 如何使用 GET 方法访问此 API?

javascript - 使用 css 或 js 在 head 中设置标题标签的样式

html - float 似乎去除了背景颜色

javascript - 如何用js设置input元素值时触发change事件