【问题标题】:append text field and make it auto complete using jquery附加文本字段并使用jquery使其自动完成
【发布时间】:2016-02-01 02:28:44
【问题描述】:

app.js

$scope.add = function () {
  $('#btn').click(function() {
  // insert a SPAN tag with class="spn" at the end in all DIVs with      class="cls"
     $scope.data=[];
     var add=' <input type="text" name="currency" id="autocomplete">' ;
     $('div.cls').append(add);
     i++;
     $scope.count++;
  });
}

$scope.autocomplete=function(){
  var currencies = [
    { value: 'Afghan afghani' },
    { value: 'Albanian lek'},
    { value: 'Algerian dinar'},
    { value: 'European euro' }
  ];

  // setup autocomplete function pulling from currencies[] array
  $('#autocomplete').autocomplete({
    lookup: currencies,
  });
}

html

<div class="cls" id="idd"></div>
<button type="button" class="btn btn-default btn-sm" id="btn"> 
  <span class="glyphicon glyphicon-plus"></span> Add
</button>

这个自动完成功能在不使用 as append 的情况下运行。但是当我在像上面那样附加文本字段后使用它时它不起作用。谁能帮助我。

【问题讨论】:

  • 什么意思??你的意思是,点击按钮后,再点击,就没有添加??

标签: javascript jquery angularjs angularjs-directive


【解决方案1】:

这个示例向您展示了如何使用 Angular 创建自动完成功能,而无需 jQuery 自动完成功能。

var app = angular.module("app", []);
        app.controller("ctrl", function ($scope, $filter) {

            $scope.suggestions = [];

            $scope.selectedData = [];

            $scope.defaultData = [
                { value: "Afghan afghani" },
                { value: "Albanian lek" },
                { value: "Algerian dinar" },
                { value: "European euro" }
            ];

            $scope.search = function () {
                var length = $scope.autocomplete.length;
                if (length === 0) {
                    $scope.suggestionsNotFound = false;
                    $scope.suggestions = [];
                } else {
                    var result = $filter("filter")($scope.defaultData, { value: $scope.autocomplete });
                    $scope.suggestions = result;
                    $scope.suggestionsNotFound = false;
                    if (result.length === 0) {
                        $scope.suggestionsNotFound = true;
                    }
                }

                ///select
                $scope.select = function (item) {
                    var isExist = $filter("filter")($scope.selectedData, { value: item.value }, true)[0];
                    if (!isExist) {
                        $scope.selectedData.push(item);
                        $scope.autocomplete = null;
                        $scope.suggestions = [];
                    }
                }

                ///remove
                $scope.remove = function (index) {
                    $scope.selectedData.splice(index, 1);
                }

            }



        });
        .autocomplete span {
            margin-left: 5px;
        }

            .autocomplete span i {
                color: red;
                cursor: pointer;
            }
<!doctype html>
<html ng-app="app" ng-controller="ctrl">
<head>
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
   <div class="container">
        <div class="autocomplete">
            <input class="form-control" type="text" ng-model="autocomplete" ng-change="search()" />
            <div class="clearfix"></div>
            <span class="label label-default" ng-repeat="data in selectedData">
                {{data.value}}
                <i ng-click="remove($index)" class="glyphicon glyphicon-remove"></i>
            </span>

            <ul class="list-group">
                <li class="list-group-item" ng-repeat="suggestion in suggestions" ng-click="select(suggestion)">
                    {{suggestion.value}}
                </li>
            </ul>
            <div class="alert alert-info" ng-if="suggestionsNotFound">
                <b>[{{autocomplete}}] not found!</b>
            </div>
        </div>
    </div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

</body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多