点击文本域,清除默认值.默认值显示时为灰色文字,点击后高亮显示,可绑定回车事件.
项目中常用到的一个效果,封装成一个小小的插件,一点不复杂,需要的看下DEMO演示中源码注释.若是不想只为清除一个默认文本调一个jQuery库,可以用原生的按我的思路写一下,很简单.
特点
1.支持input文本域及textarea同时为多表单添加同样的默认值;
2.默认值可通过表单value值设定,也可通过插件参数(iset.curVal)设置. iset.curVal默认值为null,但它优先于表单value值,当iset.curVal值设置时取iset.curVal值忽略表单value值;
3.默认值时颜色自定义;
4.支持绑定回车事件,默认为null,可自行传入需要绑定回车事件的元素.
演示及代码:点此查看DEMO
;(function($){
$.fn.iClear= function(iSet) {
/*
* Curval:表单默认值
* CurColor:默认颜色值
* Enter:绑定回车事件的元素
*/
var self=this;
iSet=$.extend({Curval:null,color:'#000',CurColor:'#ccc',Enter:null},iSet||{});
//alert($(this).val());
$(self).each( function() {
//当设置默认值是为表单赋默认值
if (iSet.Curval != null) {
$(self).val(iSet.Curval);
}
//表单focus,blur事件
$(this).css('color', iSet.CurColor).focus( function() {
$(this).css('color',iSet.color);
if ($(this).val() == (iSet.Curval ? iSet.Curval : this.defaultValue)) {
$(this).val('');
}
}).blur( function() {
if ($(this).val() == '') {
$(this).val(iSet.Curval ? iSet.Curval : this.defaultValue).css('color', iSet.CurColor);
}
});
//绑定回车事件
if (iSet.Enter != null) {
$(this).keydown( function(e) {
if (e.keyCode == 13) {
iSet.Enter.click();
}
});
}
});
}
})(jQuery);
要是直接就点提交就有问题 那样关键字就是默认的水印值 应该先判断一下
[回复]
Mr.Think 回复:
一月 12th, 2011 at 14:12
@viking, 哈, 这个问题当时考虑过, 我觉得还是给提交事件判断好些~
[回复]
重新设定值后 鼠标移走 又移回来 不应该把以前写的删掉
[回复]
Mr.Think 回复:
十一月 19th, 2010 at 10:27
@yune, 感谢提醒,bug已修正.漏掉了个括号.
[回复]
为什么每次前面要加个”;”
[回复]
Mr.Think 回复:
十一月 19th, 2010 at 10:10
@yune, 这个是规避jQuery插件可能存在的兼容性.
[回复]
的确很简单咯~加点元素在input上可以改变样式也不错
[回复]