使用angularjs清除x图标焦点问题

时间:2016-08-08 06:38:52

标签: angularjs

我需要x图标来删除输入字段值 1.当用户输入任何内容时,将显示“x”图标

  1. 如果输入框x中没有可用值隐藏

  2. 当输入框中的值可用并将输出框聚焦时,我们需要隐藏x图标并将焦点放在我们需要再次显示x图标的位置。

  3. 当我们在输入框中添加<span ng-show="name && count" ng-click="name=''" style="position: absolute;left: 203px;cursor;pointer;">X</span> Name: <input ng-model="name" ng-focus="count = !count" ng-init="count=false" > <p>{{count}}</p> (焦点我需要隐藏x,如果输入有值)时,我的期望将会失败。

    CODE:

    {{1}}

    任何人请帮助我解决这个问题

3 个答案:

答案 0 :(得分:1)

jsfiddle有问题。下面的代码段(从您的问题粘贴的副本)运行正常。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.name="";
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">

<span ng-show="name && count" ng-click="name=''" style="position: absolute;left: 203px;">X</span>

Name: <input ng-model="name" ng-focus="count = !count" ng-init="count=false" ng-blur="count = !count">

<p>{{count}}</p>
</div>

答案 1 :(得分:0)

<span ng-show="name && count" ng-click="name=''" 
style="position:absolute;left: 203px;cursor;pointer;">
   X
</span>

Name: <input ng-model="name" ng-focus="count = !count" ng-blur="count!=count" ng-init="count=false" >
<p>{{count}}</p>

答案 2 :(得分:0)

点击事件会在模糊之后触发,因此列表会在您点击之前被隐藏。简单的解决方案是使用 mousedown 事件而不是点击:

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

<span ng-show="name && count" ng-click="name=''" ng-mousedown="name=''" style="position: absolute;left: 203px;">X</span>

Name: <input ng-model="name" ng-focus="count = !count" ng-init="count=false" ng-blur="count = !count">

<p>{{count}}</p>