无法从输入类型无线电angularjs获取值

时间:2016-11-29 14:18:19

标签: angularjs

我正在尝试从输入类型的无线电获取值,但我将未定义为输出。

这是我的HTML代码:

<div ng-repeat="option in options" style="font-size : 20px;padding: 10px">
    <input type="radio" ng-model="inpt" value = "{{option.poll_option_id}}"> {{option.poll_option}}</input>
</div>

<br>

<button ng-disabled="rd" ng-click="pollSubmit()">Submit </button>

我的角度代码是

$scope.pollSubmit = function(){
   console.log($scope.inpt);
}

3 个答案:

答案 0 :(得分:1)

最好使用ng-change并获取值,在提交时使用相同的

 <div class="row">
        <div class="col-xs-9">
          <label class="radio-inline" ng-repeat="y in options">
            <input type="radio" ng-model="selected" ng-change="getselected(y)" ng-value="y.poll_option_id"> {{y.poll_option_id}}
          </label>
        </div>
      </div>

<强> DEMO

答案 1 :(得分:0)

那是因为ngRepeat创建了自己的子范围。范围可以查找,而不是查看。您应该在迭代的对象上使用属性,然后在控制器中检查这些属性:

<input type="radio" ng-model="option.input" value = "{{option.poll_option_id}}"> {{option.poll_option}}</input>

和JS:

$scope.pollSubmit = function(){
    for (var i = 0; i < $scope.options.length; i++) {
        console.log($scope.options[i].input);
    }
}

答案 2 :(得分:0)

使用选项输入标签需要一些配置才能使其正常工作。 您可以使用相同的name属性对来自同一组的选项进行分组。在ng-model中使用一个变量,该变量指向当前范围内对象中的元素。 INPUT不是容器(没有结束标记),因此任何其他文本内容都位于标记元素之后。

 <input name="opt1" type="radio" ng-model="sel.value" value = "{{option.poll_option_id}}"> {{option.poll_option}} 

请参阅此小提琴:https://jsfiddle.net/aavsnc8n/以获取示例。