如何从下拉列表中获取特定值

时间:2016-05-19 07:13:26

标签: html angularjs drop-down-menu angularjs-ng-repeat

我有以下html:

weight_sum

我只需要在表单/表格中显示排名(整数值)。但它实际上将整数和字符串值都输入到字段中。如何防止这种情况并仅显示整数值?伙计们好吗?提前致谢

根据答案,我已经使用severity_list更新了我的问题,是否因为编辑人员有任何变化?

<td>
    {%verbatim%}
    <select ng-model="s_value" class="form-control">
        <option ng-repeat="s in severity_list" ng-value="s.rank" >{{s.rank}}-{{s.generic_value}}</option>
    {%endverbatim%}
    </select>
</td>

编辑以向SK显示问题:

here

3 个答案:

答案 0 :(得分:2)

你应该真的使用ng-options

编辑:阅读您的其他评论并意识到您可能想要这个

&#13;
&#13;
<!DOCTYPE html>
<html ng-app="app">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-controller="MainCtrl">

  <select ng-model="s_value" class="form-control" ng-options="option as option.Text for option in severity_list" ng-change="dropdownChanged()">
  </select>

  Selected:{{s_value}}

</body>

</html>
&#13;
.click
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在审核了评论之后,我可以建议以下内容?

它并不精彩,但它展示了一种方法,这里是小提琴:

http://jsfiddle.net/LXAt7/573/

<select ng-model="s_value" class="form-control" ng-hide="!editMode" ng-options="s.rank as (s.rank + ' - ' + s.generic_value) for s in severity_list" ng-change="valueChanged()"> </select> <input type="text" ng-model="s_value" ng-show="!editMode" ng-click="changeToEditMode()" />

值得注意的是,使用ng-options是一种更清洁的方法。 - https://docs.angularjs.org/api/ng/directive/ngOptions

我不熟悉这个逐字标记,但如果它不低于</select>,它似乎不合适?

答案 2 :(得分:-2)

你可以尝试这样的事情。我试图保持简单:

&#13;
&#13;
var app = angular.module("Demo", []);

 app.controller("AppController", function($scope) {
   $scope.severity_list = [{
     rank: 1,
     generic_value: "High"
   }, {
     rank: 2,
     generic_value: "Mid"
   }, {
     rank: 3,
     generic_value: "Low"
   }];

   $scope.getVal = function(ind) {
     if ($scope.selectedValue != undefined && $scope.selectedValue == $scope.severity_list[ind].rank) {
       $scope.severity_list[ind].viewValue = $scope.severity_list[ind].rank;
     } else {
       $scope.severity_list[ind].viewValue = $scope.severity_list[ind].rank + '-' + $scope.severity_list[ind].generic_value;
     }
     return $scope.severity_list[ind].viewValue;
   }
 });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="Demo">
  <div ng-controller="AppController">
    <select ng-model="selectedValue">
      <option value="">--Select--</option>
      <option ng-repeat="s in severity_list" value="{{s.rank}}">
        {{ getVal($index) }}</option>
    </select>
    <span ng-show="selectedValue">Selected Value: {{ selectedValue }} </span>
  </div>
</div>
&#13;
&#13;
&#13;

JsFiddle:https://jsfiddle.net/sktajbir/6fmvsaf0/21/

由于选项标记中的此代码,所选值始终为等级:

value="{{s.rank}}" 

如果您希望将完整对象作为所选对象,则可以尝试:

value="{{s}}" 

我希望这会帮助你进一步思考。感谢。

相关问题