单选按钮检查状态未被检索

时间:2018-02-13 13:06:00

标签: angularjs radio-button

我希望我的formData说明选择了哪个单选按钮。基本上如果是第一个单选按钮,那么如果取消选择它应该设置为true,它应该是false。 目前我的下面的代码模型没有设置。 我尝试使用ng-value但是它没有用。 这就是我试过的

基本上,我希望根据检查状态将模型数据设置为true。

Html代码

                            <div class="radio">

                                <input type="radio" id="typeRadio1" name="optradio" ng-model="formData.selectedType.perm" ng-change="isRadioSelected('typeRadio1')" required><label for="typeRadio1">301 PERM</label>
                                <input type="radio" id="typeRadio2" name="optradio" ng-model="formData.selectedType.temp" ng-change="isRadioSelected('typeRadio2')" required><label for="typeRadio2">302 TEMP</label>
                            </div>

app.js

        $scope.formData = {}
        $scope.isRadioSelected = function(s) {
            if (document.getElementById(s).checked) { $scope.formData.selectedType.perm = true; }
            else { $scope.formData.selectedType.perm = false;}

            if (document.getElementById(s).checked) { $scope.formData.selectedType.temp = true; }
            else { $scope.formData.selectedType.temp = false;
}                
        }

1 个答案:

答案 0 :(得分:0)

当您checkbox时,您不需要ng-value,因为您将获得true/false,但复选框也有唯一的ng-model ,但所有广播name

ng-value相同

&#13;
&#13;
var app = angular.module("app", []);

app.controller("ctrl", function($scope){
  
  $scope.checkboxSelected = function(item){
    console.log(item)
  }
  
 $scope.radioSelected = function(){
    console.log($scope.form.radio)
  }

})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  checkbox1 - {{form.checkbox1}}
  <input type="checkbox" ng-change="checkboxSelected(form.checkbox1)" ng-model="form.checkbox1"/>
  
  checkbox1 - {{form.checkbox2}}
  <input type="checkbox" ng-change="checkboxSelected(form.checkbox2)" ng-model="form.checkbox2"/>
  
  
  <hr>
  
  
  radio - {{form.radio}}
  <input type="radio" name="radio" ng-value="1" ng-change="radioSelected()" ng-model="form.radio"/>
  <input type="radio" name="radio" ng-value="2" ng-change="radioSelected()" ng-model="form.radio"/>
</div>
&#13;
&#13;
&#13;