【问题标题】:Angular drop-down and text input in same field and Angular data-binding同一字段中的 Angular 下拉列表和文本输入以及 Angular 数据绑定
【发布时间】:2014-08-06 08:09:38
【问题描述】:

是否可以在 angularjs 中创建一个字段输入,它可以从下拉列表中获取值并且还具有自定义输入。所以以下两个输入选项应该是一个,用户可以从下拉列表中选择值或编写自定义值。

<input name="TypeCode" type="text" ng-model="sample"/>
  <select class="input-large input-large-altered " ng-model="sample">
          <option value="A">A</option>
          <option value="B">B</option>
          <option value="C">C</option>
          <option value="D">D</option>
          <option value="E">E</option>
   </select>

其次,我想使用输入选项将几个 ng-model 的输入值绑定到一个 ng-model,但它似乎不起作用。例如在下面的表格中,如果用户选择类别:E,类型:X 和数字 2,则类型代码应为 "EX2" http://plnkr.co/edit/gONebPq3wFJiQemQeEnL

<div class="row col-md-12">

    <div class="col-md-5">

      <label class="control-label col-md-4 ">Type Code</label>

      <div class="col-md-4">
        <input class="text-box input-large input-large-altered" name="TypeCode" type="text" ng-model="TypeCode" ng-readonly="true" value="{{Category}}+{{Type}}+{{Number}}"  />

      </div>
    </div>


    <div class="col-md-5">
      <label class="control-label col-md-4 ">Category</label>

      <div class="col-md-4">
        <select class="input-large input-large-altered " ng-model="Category">
          <option value="A">A</option>
          <option value="B">B</option>
          <option value="C">C</option>
          <option value="D">D</option>
          <option value="E">E</option>
        </select>
      </div>
    </div>
  </div>

   <div class="row col-md-12">

    <div class="col-md-5">

      <label class="control-label col-md-4 ">Type</label>

      <div class="col-md-4">
        <select class="input-large input-large-altered " ng-model="Type">
          <option value="X">X</option>
          <option value="Y">Y</option>
          <option value="Z">Z</option>

        </select>
      </div>
    </div>


    <div class="col-md-5">
      <label class="control-label col-md-4 ">Number</label>

      <div class="col-md-4">
        <select class="input-large input-large-altered " ng-model="Number">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>

        </select>
      </div>
    </div>
  </div>

【问题讨论】:

    标签: javascript angularjs data-binding angularjs-directive


    【解决方案1】:

    请看这里: http://plnkr.co/edit/YIQRFA3tjM4CtYI2Bn8U?p=preview

    <div class="row col-md-12">
    
        <div class="col-md-5">
    
          <label class="control-label col-md-4 ">Type Code</label>
    
          <div class="col-md-4">
            <input class="text-box input-large input-large-altered"
            name="TypeCode" type="text" 
            ng-model="TypeCode"    />
    
          </div>
        </div>
    

    js:

     var app = angular.module('plunker', []);
    
        app.controller('MainCtrl', function($scope) {
          $scope.name = 'World';
          $scope.updateTypecode = function() {
            var a = ($scope.Category) ? $scope.Category : "";
            var b = ($scope.Type) ? $scope.Type : ""
            var c = ($scope.Number) ? $scope.Number : ""
            $scope.TypeCode = a + b + c;
          }
        });
    

    【讨论】:

    • 谢谢,我期待没有 JS 的东西 :) 但这是一个合理的答案 :)。你能回答第一部分吗?用户可以从下拉列表中选择值或编写自定义值...
    • @Muffin 是的,您可以在这里查看:plnkr.co/edit/YIQRFA3tjM4CtYI2Bn8U?p=preview
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2020-05-15
    • 2018-10-19
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多