实现bootstrap布局的input输入框中的图标点击功能

  使用bootstrap布局可以在input的输入框中添加譬如登录名输入框中的一键清除图标和密码输入框中显示密码的小眼睛图标。如下图:

  

  但是在将图标放入input输入框中,这些小图标是无法获得点击事件的;

  那么问题来了,怎样让这些小图标能够获得点击事件呢?

  我也不知道,但是可以用一种迂回的方式,来间接的实现该功能。

  重点来了:

  在小图标的位置上,添加一个看不见的元素,元素的大小正好将小图标覆盖,但是没有背景颜色和边框;相当于给小图标盖了一个透明的被子;

<div class="input-group">
  <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
  <input type="text" class="form-control" placeholder="账号/手机号/邮箱" id="userName">
  <span class="glyphicon glyphicon-remove-circle form-control-feedback" style="display:inline-block;"></span> <--小图标元素-->
  <span style="display:inline-block;border:1px solid red;width:30px;height:30px;position:absolute;right:2px;z-index:100;cursor: pointer;"></span> <--覆盖在小图标上面的元素-->
</div>

  将事件添加在这个覆盖在小图标上的元素,小图标的作用仅仅是根据需要进行显示和隐藏即可;

  如此便间接实现了,小图标的点击效果;  

时间: 2024-10-01 07:44:37

实现bootstrap布局的input输入框中的图标点击功能的相关文章

angular input输入框中使用filter格式化日期

最近使用了angular日期选择器,不过需要把选中的日期输出到input输入框中,如果按照默认情况,显示的是时间戳形式的时间,不符合要求,需要把格式变成特定格式,但是input上ng-model上又不能直接使用filter,因此需要一种方法把这里显示的内容格式化. 网上寻找解决方案就是写个directive,具体实例代码如下: JS angular.module('dateRange',[]).directive('dateFormat', ['$filter',function($filter

去除Input输入框中边框的方式

我们在做制作注册页面时,经常会需要消除Input带来的边框,这时候我们需要用到两个属性 一个是input在非激活状态下,不现实边框,代码规则为 border:none:同时当鼠标移到input输入框上时,需要用 outline:medium;来消除边框,具体代码如下 .table_box2{ height: 30px; width: 180px; border: none; float: left; zoom:1; outline: medium; 需特别注意点一点,在这里尽量不要使用borde

实时获取input输入框中的值

//输入框正在输入时 $("#ipt").on('input',function(){ if(!($('#ipt').val()=='')){ $(".cancle_ico").removeClass('hide'); }else{ $(".cancle_ico").addClass('hide'); } }) //输入框得到焦点时 $("#ipt").on('focus',function(){ if(!($('#ipt')

【转】input输入框中光标高度的变化问题

原文地址:http://blog.csdn.net/luochao_tj/article/details/17755457 input[type='text']文本框光标高度在有输入内容和为空时发生很大变化. 首先,先看看问题产生的原因:chrome浏览器对光标高度的设置原则为,当没有内容的时候光标的高度=input的line-height的值,当有内容时,光标从input的顶端到文字的底部. OK,既然知道了原因,我们就相应才去一些措施.尝试了两种方法去做:. 方法1:将line-height

input输入框中的光标大小显示不一致

ie7中和chrome的非常明显 先看看问题产生的原因:chrome浏览器对光标高度的设置原则为,当没有内容的时候光标的高度=input的line-height的值,当有内容时,光标从input的顶端到文字的底部. OK,既然知道了原因,我们就相应才去一些措施.尝试了两种方法去做:. 方法1:将line-height的值设置为跟字体大小一致:如果高度达不到,用padding去撑: 方法2:对chrome不设置line-height,它会自动文字居中,对ie进行hack设置line-height的

JS实时获取输入框中的值

实时获取input输入框中的值需要oninput和onpropertychange属性来实现.原因是onpropertychange属性为IE专属,而oninput属性支持大部分浏览器包括IE9及以上的版本. oninput与onpropertychange失效的情况: oninput事件:1. 在脚本中改变value时,不会触发:2.从浏览器的自动下拉提示中选取时,不会触发. 例如: var testinput = document.createElement('input'); if('on

input框中如何添加搜索

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" type="text/css" href="Font/demo-files/demo.css"/> <

为input输入框添加圆角并去除阴影

<input type="text" name="bianhao" value="" placeholder="请输入商品编号" maxlength="10" size="10" style="width:105px; margin:0px 0px 0px 12px;height:22px;border-radius:4px; border:1px solid #DBDB

今天碰到一个问题,怎么限制用户在固定宽度的input输入框里输入的长度,由此涉猎到了maxlength属性和size属性以及它们的区别。

最开始想首先要强制在一行,另外超出的隐藏.还有一个思路是把value的值的长度和框的长度怎么联系起来,具体怎么联系我也不知道. 在解决另外一个问题的时候,哥发给我的代码里无意中看见input有个maxlength属性,就查了这儿属性. 在W3school里说maxlength属性有两个最大值:85和55,这个属性用于type类型为text和password属性.具体为啥有两个最大值还不清楚,待查. maxlength和size的区别在于,如: maxlength="5",则input输