添加“;清除字段”;按钮引导3输入使用jQuery+CSS类
Adding "Clear Field" buttons to Bootstrap 3 inputs using jQuery + CSS class
如何使用jQuery和CSS类将"清除字段"按钮添加到多个Bootstrap 3输入字段?
我已经找到了可以在具有特定ID的字段中添加"清除字段"按钮的解决方案,但到目前为止,还没有任何解决方案可以按类执行。我有一个有很多字段的表单,我不想为每个字段重复我的代码。
到目前为止,我已经尝试过了(Bootply),但我不知道如何让jQuery只清除一个字段并切换一个图标,而不是全部清除。
//JS-
$(document).ready(function(){
$(".searchinput").keyup(function(){
$(".searchclear").toggle(Boolean($(this).val()));
});
$(".searchclear").toggle(Boolean($(".searchinput").val()));
$(".searchclear").click(function(){
$(".searchinput").val('').focus();
$(this).hide();
});
});
//HTML
<div class="btn-group">
<input id="searchinput" type="search" class="form-control searchinput" placeholder="type something..." value="">
<span id="searchclear" class="searchclear glyphicon glyphicon-remove-circle"> </span>
</div>
<div class="btn-group">
<input id="searchinput" type="search" class="form-control searchinput" placeholder="type something..." value="">
<span id="searchclear" class="searchclear glyphicon glyphicon-remove-circle"></span>
</div>
//CSS
.searchinput {
width: 200px;
}
.searchclear {
position:absolute;
right:5px;
top:0;
bottom:0;
height:14px;
margin:auto;
font-size:14px;
cursor:pointer;
color:#ccc;
}
1)您可以使用$(this)
获取对当前目标元素的引用
2) 使用.next()仅切换图标的可见性,该图标是您当前在中的input
的下一个直接同级
3) 使用.prve()仅清除input
,它是所单击的清除图标的前一个同级:
最终代码应该看起来像:
$(document).ready(function () {
$(".searchinput").keyup(function () {
$(this).next().toggle(Boolean($(this).val()));
});
$(".searchclear").toggle(Boolean($(".searchinput").val()));
$(".searchclear").click(function () {
$(this).prev().val('').focus();
$(this).hide();
});
});
Bootply演示
尝试将您的javascript代码更改为:
$(document).ready(function(){
$(".searchinput").keyup(function(){
$(this).parent().find('.searchclear').toggle(Boolean($(this).val()));
});
$(".searchclear").toggle(Boolean($(".searchinput").val()));
$(".searchclear").click(function(){
$(this).parent().find('.searchinput').val('').focus();
$(this).hide();
});
});
本质上,它所做的是为清除按钮添加作用域,从而将其限制在同级按钮上。还有其他jQuery函数可能更具体,但这应该可以工作。
http://www.bootply.com/130368
另一个选项是使用.siblings()
来确保您只针对具有searchclear
类的同级。
$(document).ready(function(){
$(".searchinput").keyup(function(){
$(this).siblings(".searchclear").toggle(Boolean($(this).val()));
});
$(".searchclear").toggle(Boolean($(".searchinput").val()));
$(".searchclear").click(function(){
$(".searchinput").val('').focus();
$(this).hide();
});
});
http://www.bootply.com/130369
相关文章:
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- 自定义Jquery css下拉菜单问题
- jQuery css可见性在load方法中不起作用
- 使用ajax的输入jquery意外结束
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- Jquery CSS背景图像旋转
- 使用jQuery.css()方法时,是否需要转义任何字符
- 如何使用jquery更改文本输入的css
- 将jQuery.css()与变量一起使用
- 如何在jQuery.CSS()方法中为所有浏览器编写CSS代码
- 更改类所选空输入的CSS属性
- 如何从输入 JQuery 或 javascript 中获取修改后的文本
- 使用 js/jQuery/css 在重力形式中覆盖 !important
- 从输入 jquery 获取值
- 投资组合扩展器宽度 - Jquery CSS
- 使用 Ajax/jQuery 将 PHP 内容输入到 CSS 选择器中
- jquery css选择器使用输入类型Error
- Jquery CSS验证里面输入没有消息红色文本问题
- jQuery- .css()不能用于输入
- 添加“;清除字段”;按钮引导3输入使用jQuery+CSS类