Angular JS下拉列表选择“其他”选项,其他输入成为必填项

时间:2017-05-25 22:32:44

标签: angularjs dropdown angularjs-validation

我正在尝试使用“其他”选项添加下拉列表。如果用户选择“其他”,其他(请注明)输入框将变为强制。我应该如何验证此案例?现在我添加了Javascirpt代码来验证它。反正有没有像“请说明其他原因”这样做?

<form name="myForm">

    <div ng-app="myApp" ng-controller="myCtrl">

    Reason : <select ng-model="reason" ng-options="x for x in names" required></select>    <span ng-show="myForm.reason.untouched">The reason is required.</span>

<p>Others (specify): <input type="text" ng-model="others"></p>


    </div>
    </form>




    <script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.names = ["reason1", "reason2", "reason3","Others"];

$ scope.addItem = function(){

     if ($scope.reason == "Others" && !$scope.others)
     {
         window.alert("Please specify others");
     }

     if($scope.others && $scope.reason!='Others')
     {
         window.alert("Please select reason others");
     }


    });
    </script>

1 个答案:

答案 0 :(得分:1)

Angular具有ng-required属性,允许您有条件地设置它。

<form name="myForm">

<div ng-app="myApp" ng-controller="myCtrl">

Reason : <select ng-model="reason" ng-options="x for x in names" required>
</select>    <span ng-show="myForm.reason.untouched">The reason is required.
</span>

<p>Others (specify): <input type="text" ng-model="others" ng-required="reason == 'Others'"></p>


</div>
</form>