带有选择、复选框和单选按钮的 Angular JS 表单

Posted

技术标签:

【中文标题】带有选择、复选框和单选按钮的 Angular JS 表单【英文标题】:Angular JS form with select, checkbox and radio button 【发布时间】:2015-11-02 05:56:30 【问题描述】:

我是 Angular JS 的新手。我创建了一个带有选择、复选框和单选按钮的简单表单。我不清楚这些值如何以角度绑定到这些字段。如何最小化我的 html 代码并在我的控制器中指定值。我希望在单击计算按钮时添加每个值的结果并显示为总计。我的表格如下。

HTML

  <body ng-app="myApp">
  <div class="container" ng-controller="totalController">
    <form class="form-horizontal" role="form" ng-submit="calculate()">
      <div class="form-group">
        <label for="sel1">Select Model:</label>
        <select class="form-control" id="sel1">
          <option value="40000">Moto turbo</option>
          <option value="20000">Moto X</option>
          <option value="10000">Moto G</option>
          <option value="5000">Moto E</option>
        </select>
      </div>
      <div class="form-group">
        <label for="color" class="color">Select Color:</label>
        <label class="radio-inline">
          <input type="radio" name="optradio" value="400">
          Black </label>
        <label class="radio-inline">
          <input type="radio" name="optradio" value="300">
          Red </label>
        <label class="radio-inline">
          <input type="radio" name="optradio" value="300">
          White </label>
        <label class="radio-inline">
          <input type="radio" name="optradio" value="200">
          Yellow </label>
        <label class="radio-inline">
          <input type="radio" name="optradio" value="250">
    Blue </label>
      </div>
      <div class="form-group">
        <label for="sel1">Select Panel:</label>
        <label class="checkbox-inline">
          <input type="checkbox" value="200">
          Set of 1 Panel</label>
        <label class="checkbox-inline">
          <input type="checkbox" value="400">
          Set of 2 Panel</label>
        <label class="checkbox-inline">
          <input type="checkbox" value="600">
          Set of 3 Panel</label>
      </div>
      <button type="submit" class="btn btn-primary">Calculate</button>
      <div role="alert" class="alert alert-success" ng-show="showTotal">   Total is : </div>
    </form>
  </div>
 <!--container--> 
 </body>

控制器

 var myApp = angular.module('myApp',[]);
 myApp.controller('totalController',["$scope",function($scope)
      $scope.showTotal = false;
      $scope.calculate = (function()
         $scope.showTotal = true;
          );
     ]);

我的目标是了解选择、复选框和单选按钮的值绑定。

【问题讨论】:

对于选择,使用 ng-options,对于其他人,使用 ng-repeat 学习一些表单教程并熟悉 Angular 文档。使用ng-model 将用户输入绑定到数据模型 【参考方案1】:

这是一个具体的方法:

http://plnkr.co/edit/WHmg6hShcfUF4FK1ajDk?p=preview

通常,为了访问控制器中的表单元素,您需要使用ng-model。我建议在这里查看文档:https://docs.angularjs.org/api/ng/input

【讨论】:

【参考方案2】:

对于下拉部分,试试这个代码

<div ng-controller="MyController" >
    <form>
        <select ng-model="myForm.car"
                ng-options="obj.id as obj.name for obj in myForm.options">
        </select>
    </form>

    <div>
        myForm.car
    </div>
</div>

<script>
    angular.module("myapp", [])
        .controller("MyController", function($scope) 
            $scope.myForm = ;
            $scope.myForm.car  = "nissan";

            $scope.myForm.options = [
               id : "nissan", name: "Nissan" 
             , id : "toyota", name: "Toyota" 
             , id : "fiat"  , name: "Fiat" 
             ];

         );
</script>

【讨论】:

以上是关于带有选择、复选框和单选按钮的 Angular JS 表单的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 验证,将错误消息放在复选框和单选按钮组下方

关于复选框和单选按钮的问题

在javascript单击处理程序中隐藏和单选按钮和复选框标签

标签、复选框和单选按钮

Google Chrome 中的引导复选框和单选按钮标签问题

输入在标签内时的CSS复选框和单选按钮?