一锅小青蛙 2016-08-12 07:30 采纳率: 50%
浏览 1956
已采纳

easyui 带清除图标的文本框,多个文本框实现时出现问题

这是官网的代码

 $.extend($.fn.textbox.methods, {
    addClearBtn: function (jq, iconCls) {
        return jq.each(function () {
            var t = $(this);
            var opts = t.textbox('options');
            opts.icons = opts.icons || [];
            opts.icons.unshift({
                iconCls: iconCls,
                handler: function (e) {
                    $(e.data.target).textbox('clear').textbox('textbox').focus();
                    $(this).css('visibility', 'hidden');
                }
            });
            t.textbox();
            if (!t.textbox('getText')) {
                t.textbox('getIcon', 0).css('visibility', 'hidden');
            }
            t.textbox('textbox').bind('keyup', function () {
                var icon = t.textbox('getIcon', 0);
                if ($(this).val()) {
                    icon.css('visibility', 'visible');
                } else {
                    icon.css('visibility', 'hidden');
                }
            });
        });
    }
});

然后我想让页面上的3个input同时实现这个功能

 $(function () {
    $('input').textbox().textbox('addClearBtn', 'icon-clear');
});

结果
图片说明

求大神解答,谢谢!!!

  • 写回答

3条回答 默认 最新

  • Go 旅城通票 2016-08-12 09:07
    关注

    easyui自带的就有了,干嘛还自己扩展。。

     $('input').textbox({ icons: [{ iconCls: 'icon-clear', handler: function (e) { $(e.data.target).textbox('clear'); } }] })
    

    你要用扩展的应该在each前修改icons,而不是each里面,不要每次都压入一个新图标,所以最后出现多个x,只有第一个是隐藏的

    而且你不要用input选择器,会选中input标签,包含隐藏的

            $.extend($.fn.textbox.methods, {
                addClearBtn: function (jq, iconCls) {
    
                    var opts = jq.textbox('options');
                    opts.icons = opts.icons || [];
    
                    opts.icons.unshift({
                        iconCls: iconCls,
                        handler: function (e) {
                            $(e.data.target).textbox('clear').textbox('textbox').focus();
                            $(this).css('visibility', 'hidden');
                        }
                    });
                    return jq.each(function () {
                        var t = $(this);
                        t.textbox();
                        if (!t.textbox('getText')) {
                            t.textbox('getIcon', 0).css('visibility', 'hidden');
                        }
                        t.textbox('textbox').bind('keyup', function () {
                            var icon = t.textbox('getIcon', 0);
                            if ($(this).val()) {
                                icon.css('visibility', 'visible');
                            } else {
                                icon.css('visibility', 'hidden');
                            }
                        });
                    });
                }
            });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类