点击文本域清除默认值效果,可绑定回车提交(已封装)

点击文本域,清除默认值.默认值显示时为灰色文字,点击后高亮显示,可绑定回车事件.
项目中常用到的一个效果,封装成一个小小的插件,一点不复杂,需要的看下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);
共有 7 条评论.

发表评论2,316 Views

  1. 要是直接就点提交就有问题 那样关键字就是默认的水印值 应该先判断一下

    [回复]

    Mr.Think 回复:

    @viking, 哈, 这个问题当时考虑过, 我觉得还是给提交事件判断好些~

    [回复]

  2. 重新设定值后 鼠标移走 又移回来 不应该把以前写的删掉

    [回复]

    Mr.Think 回复:

    @yune, 感谢提醒,bug已修正.漏掉了个括号.

    [回复]

  3. 为什么每次前面要加个”;”

    [回复]

    Mr.Think 回复:

    @yune, 这个是规避jQuery插件可能存在的兼容性.

    [回复]

  4. 的确很简单咯~加点元素在input上可以改变样式也不错

    [回复]

发表评论[无需注册]