如何用angularJS检查单选按钮?

时间:2015-02-20 14:27:19

标签: javascript html angularjs forms

我正在创建一个html / angularjs表单。在形式我有一个是或否的单选按钮。所以我想默认检查按钮号 这是我使用的代码: 我的控制器:

angular.module('radioExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.myvariable = 'false';

    }]);

我的html代码段:

<div class="col-lg-10">
                <input type="radio" id="variable" name="variable" ng-model="myvariable" value="true">Yes</input> 
                <input type="radio" id="variable" name="variable" ng-model="myvariable" value="false">No</input>
            </div>

但是第一次加载表单时没有选择(选中)。我必须单击一个值才能选择一个(选中) 我的代码出了什么问题?这里plunker link 感谢

4 个答案:

答案 0 :(得分:0)

我为你做了fiddle。查看HERE

您还应该设置ng-valuetruefalse

<div ng-controller="MyCtrl">
    <div ng-repeat="o in options">
        <input type="radio" name="group1" ng-model="o.checked" ng-value="o.checked"></input>
        <label>{{o.name}}</label>
    </div>
</div>



var myApp = angular.module('myApp', []);

function MyCtrl($scope) {
    $scope.options =  [
       { name: 'OPT1', id: 1, checked: false },
       { name: 'OPT2',id: 2, checked: false },
       { name: 'OPT3',id: 3, checked: true  }
    ];
   }

答案 1 :(得分:0)

它在plunkr中不起作用的原因是因为你创建了一个名为&#34; radioExample&#34;但是在编写HTML代码时你不会使用它。

基本上,替换这个 -

<html ng-app>

在代码的开头用这个

<html ng-app="radioExample">

这样,当您声明控制器时,AngularJS知道需要查看哪个模块来获取控制器。

注意 - 如果您没有将控制器与模块相关联,那么您的代码将起作用。

答案 2 :(得分:0)

结帐ng-checked。您要做的是将ng-app="radioExample"添加到您的应用的html - 标记。

然后在以下plunker示例中添加ng-checked="myvariable == 'false'"ng-value="'value'"Plunker

<div class="col-lg-10">
    <input ng-checked="myvariable == 'true'" type="radio" id="variable" name="variable" ng-model="myvariable" value="true">Yes
    <input ng-checked="myvariable == 'false'" type="radio" id="variable" name="variable" ng-model="myvariable" value="false">No
</div>

答案 3 :(得分:0)

数据绑定错误。在radiobutton中定义控制器覆盖值中的myvariable。您必须使用ng-repeat,如

<div ng-repeat="o in options">
    <input type="radio" name="name" ng-model="o.checked" ng-value="o.checked"></input>
    <label>{{o.name}}</label>
</div>

(我使用上一个答案的代码)