简体   繁体   English

如何从动态生成的单选按钮中获取单选按钮选择的值?

[英]How to get radio button selected value from dynamically generated radio buttons?

Hi I am developing web application in angularjs. 嗨,我正在用angularjs开发Web应用程序。 I am generating radiobuttons dynamically using ng-repeat as below. 我正在使用ng-repeat动态生成单选按钮,如下所示。

<ul>
    <li ng-repeat="level in permissions">
        <input name="level.perm_levelname" type="radio" ng-model="level.perm_levelname" value="{{level.perm_levelname}}"> {{level.perm_levelname}}
        <a ng-click="gotopermMap({permisssionID: level.id})">View</a>
    </li>
</ul>
<input type="button" value="APPLY" ng-click="apply()" />

I am trying to get selected radio button as below. 我试图如下所示选择单选按钮。

 $scope.apply=function()
        {
            var permname = $scope.name;
            console.log($scope.level.perm_levelname);
        }

I am getting error Cannot read property 'perm_levelname' of undefined. 我收到错误消息无法读取未定义的属性'perm_levelname'。 May i get help here to get selected radio button? 我可以在这里获得帮助以获取选定的单选按钮吗? Thank you 谢谢

group radio buttons by a name and specify a common scope variable for radio buttons ng-modal 按名称分组单选按钮,并为单选按钮指定公共作用域变量ng-modal

   <ul>
     <li ng-repeat="level in permissions">
       <input name="myradiobtn" type="radio" ng-model="myradioBtnValue" ng-value="level.perm_levelname">
       {{level.perm_levelname}}
       <a ng-click="gotopermMap({permisssionID: level.id})">View</a>
     </li>
   </ul>
   <input type="button" value="APPLY" ng-click="apply()"/>

Use ng-click event for radio button to get current selected value and assign the value a scope object. ng-click事件用于单选按钮可获取当前选定值,并将该值分配给作用域对象。 then get the value from saved scope abject while you click apply button. 然后在您单击“应用”按钮时从保存的范围中获取值。

DEMO: DEMO:

 function TodoCtrl($scope) { $scope.permissions= [{perm_levelname:"hai"},{perm_levelname:"bye"},{perm_levelname:"come"},{perm_levelname:"go"}] $scope.apply=function() { alert($scope.currecntClickValue); } $scope.currecntClick=function(currecntClickValue) { $scope.currecntClickValue=currecntClickValue.perm_levelname; } } 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app> <h2>Todo</h2> <div ng-controller="TodoCtrl"> <ul> <li ng-repeat="level in permissions"> <input name="groupName" type="radio" ng-click="currecntClick(level)" ng-value="level.perm_levelname"> {{level.perm_levelname}} <a href="#" ng-click="gotopermMap({permisssionID: level.id})">View</a> </li> </ul> <input type="button" value="APPLY" ng-click="apply()"/> </div> </div> 

you should use radio button group like this-- 您应该使用这样的单选按钮组-

<ul>
     <li ng-repeat="level in permissions">
       <input name="btnGroup" type="radio" ng-model="radioButtonValue" value="{{level.perm_levelname}}">
       {{level.perm_levelname}}
       <a ng-click="gotopermMap({permisssionID: level.id})">View</a>
     </li>
   </ul>
   <input type="button" value="APPLY" ng-click="apply()"/>

And inside of Controller- 在控制器内部

$scope.radioButtonValue='';

 $scope.apply=function()
        {
            var permname = $scope.name;
            console.log($scope.radioButtonValue);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM