【问题标题】:Radio button checked status is not getting retrived未检索到单选按钮检查状态
【发布时间】:2018-07-23 20:47:47
【问题描述】:

我希望我的 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;
}                
        }

【问题讨论】:

  • 这不是收音机! checkbox你有
  • 如果您传递 ng-model,则不需要 document.getElementById(s).checked,例如$scope.isRadioSelected(formData.name.desktop)。然后你可以简单地拥有:$scope.formData.selectedType.perm = s;
  • 试试这个可能会有帮助jsfiddle.net/takuan/aaoub2mg

标签: angularjs radio-button


【解决方案1】:

当您拥有checkbox 时,您不需要ng-value,因为您将获得true/false,但复选框也有唯一的ng-model 所有收音机都有与ng-value 相同的name

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)
  }

})
<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>

【讨论】:

  • 即使在给出相同的模型名称之后...模型没有得到绑定,而是默认情况下总是选择第二个单选按钮。我试过下面的代码。 '
    '
猜你喜欢
  • 2013-09-20
  • 2016-09-06
  • 2012-12-15
  • 1970-01-01
  • 2018-08-22
  • 2011-04-28
  • 2019-06-08
  • 1970-01-01
  • 2019-05-29
相关资源
最近更新 更多