代码之家  ›  专栏  ›  技术社区  ›  Bijay Yadav

根据向上键的数据列表验证输入文本数据

  •  0
  • Bijay Yadav  · 技术社区  · 6 年前

    我想重新使用这个 ValidateInput() 函数,因为我的代码中有更多这样的数据列表输入。

    下面是代码。

    <input id="input-id" list="datalist-id" type="text" placeholder="Select Cluster Group" ng-keyup="ValidateInput()" autocomplete="off" />
    <datalist id="datalist-id">
        <div ng-repeat="country in Countries">
            <option> {{country.name}} </option>
        </div>
    </datalist>
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   Bijay Yadav    5 年前

    要求

    1. 如果有那么多 datalist input 标签。
    2. id 属于 控件 身份证件 身份证件 标记到 ValidateInput('#input-id') ng-keyup 事件。
    3. validate 报告中提供的数据 输入 文本与 控件 .

    //Method to valdate the input against the datalist items.
    var myApp = angular.module("my-app", []);
    
    myApp.controller("myController", function($scope) {
    $scope.Countries = [{name: "Nepal"}, {name: "India"}, {name: "China"}, {name: "Pakistan"}];
    
    $scope.ValidateInput = function (InputId) {
    	var listId = '#' + $(InputId).attr('list');
    
    	$(InputId).removeAttr('style');
    
    	$(listId).each(function () {
    		if (!$(InputId).val() || !$(this).text().toLowerCase().includes($(InputId).val().toLowerCase())) {
    			$(InputId).css('border', '3px solid red');
    			return false;
    		}
    	});
    }
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
    <div ng-app="my-app" ng-controller="myController">
    <input id="input-id" list="datalist-id" type="text" placeholder="Select Country" ng-keyup="ValidateInput('#input-id')" autocomplete="off" />
    <datalist id="datalist-id">
        <div ng-repeat="country in Countries">
            <option> {{country.name}} </option>
        </div>
    </datalist>
    </div>