Showing posts with label IE 10. Show all posts
Showing posts with label IE 10. Show all posts

Monday, April 27, 2015

Checkboxes are colored black in IE 10 with ng-repeat

I have encountered a quite strange issue in Internet Explorer 10. Generally a checkboxe’s background color is filled with black and then transitions back to white, to the normal styling in IE 10. But the issue came with the behavior of my application. I had to keep a list of checkboxes and sort them in checked status and in ascending order.
When I click on the first checkbox it works fine; first turn into black and then turns back to normal color. But if I click any link other than the first one, IE 10 doesn’t seems to fire the event that turns the checkbox background color back into the normal color. Somehow I implemented the sorting part with orderBy filter inside the ng-repeat directive and I captured the checkbox select event via $event. Maybe capturing the $event caused the issue.

I have found a similar issue reported in Microsoft Connect, which is marked as won’t fix. Ultimately I decided to create my own directive.

Here is the HTML that does the ng-repeat for checkboxes, and filter's them according to status and name:
<div ng-repeat="item in (items | orderBy:['!status','itemName'])">
       <input type="checkbox" ng-click="itemClickEvent($event, item.itemId)" ng-model="item.status"/>
</div>

Controller method that captures the click event:
$scope.itemClickEvent = function ($event, itemId) {
                var checkbox = $event.target;
                var checkboxState = checkbox.checked;
                if (checkboxState) {
                    $scope.items = itemsFactory.doSomething(itemId);
                } else {
                    $scope.items = itemsFactory.doAnotherthing(itemId);
                }
        };

Custom directive I created:


IE10 version: IE10.0.9200.17229
Angularjs version: AngularJS v1.2.23
I’m still not certain about the cause of the issue and hope someone could shine some light on this J