Search code examples
angularjsmulti-selectjquery-ui-multiselect

How to make this app multi-select?


I want below angularjs code like this example here. "," should be added after every color i select. Like this red,white,black

<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

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

<p>Select a car:</p>

<select ng-model="selectedCar" ng-options="x.model for x in cars">
</select>

<h1>You selected: {{selectedCar.model}}</h1>
<p>Its color is: {{selectedCar.color}}</p>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.cars = [
        {model : "Ford Mustang", color : "red"},
        {model : "Fiat 500", color : "white"},
        {model : "Volvo XC90", color : "black"}
    ];
});
</script>


</body>
</html>


Solution

  • selectbox is for 'one select'

    use checkbox

        <!DOCTYPE html>
        <html>
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
        <body>
    
        <div ng-app="myApp" ng-controller="myCtrl">
    
        <p>Select a car:</p>
    
        <span ng-repeat="x in cars">
        <input type='checkbox' ng-model='x.checked'/>{{x.color}}
        </span>
    
        <h1>You selected: {{checkedModels()}}</h1>
        <p>Its color is: {{checkedColors()}}</p>
    
        </div>
    
        <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope , $filter) {
            $scope.cars = [
                {model : "Ford Mustang", color : "red"},
                {model : "Fiat 500", color : "white"},
                {model : "Volvo XC90", color : "black"}
            ];
    
            $scope.checkedColors = function(){
           var checkedArr = $filter('filter')($scope.cars, {checked : true});
           var text = '';
           for(var i = 0 ; i < checkedArr.length ; i++) {
    if(text.length != 0){text += ','}
    text += checkedArr[i].color;
    }
    return text;
    }
    
    $scope.checkedModels = function(){
           var checkedArr = $filter('filter')($scope.cars, {checked : true});
           var text = '';
           for(var i = 0 ; i < checkedArr.length ; i++) {
    if(text.length != 0){text += ','}
    text += checkedArr[i].model;
    }
    return text;
    }
    
    
        });
        </script>
    
    
        </body>
        </html>