KendoUI网格 - 选择单元格焦点上的文本

时间:2013-07-29 21:14:23

标签: javascript kendo-ui kendo-grid

单元格内容选择对于数字文本框(内部处理为Kendo NumericTextBox控件)成功运行,但由于某种原因,它不适用于纯文本框列。随附的是jsfiddle演示问题:

http://jsfiddle.net/latenightcoder/TrJVK/86

这是网格设置中的重要代码:

edit: function (e) {
        var input = e.container.find("input");
        input.focus(function (e) {
            console.log('focus');
            setTimeout(function () {
                input.select();
            });
        });
    }

2 个答案:

答案 0 :(得分:6)

事实证明焦点事件在我甚至可以连接焦点事件处理程序之前被触发了。因此,这是支持网格行中所有类型字段的最佳解决方案:

        var input = e.container.find("input");
        setTimeout(function () {
            input.select();
        }, 25);

可以在此处查看修改过的jsfiddle:http://jsfiddle.net/latenightcoder/TrJVK/90

答案 1 :(得分:0)

你只是将焦点事件处理程序附加到它,但你实际上并没有告诉它要集中注意力。问题应该是,为什么剑道号码盒会这样做? :-) 另外,setTimeout的第二个参数不是可选的(根据规范)。

尝试以下(http://jsfiddle.net/TrJVK/87/

    edit: function (e) {
        var input = e.container.find("input");
        input.focus(function (e) {
            // var input = $(this);
            console.log('focus');
            input.select();
        });
        input.focus();
    },

还有一点需要注意:

为了将来的jQuery兼容性,最好甚至可以执行以下操作:

    edit: function (e) {
        var input = e.container.find("input");
        input.on('focus', function (e) {
            // var input = $(this);
            console.log('focus');
            input.select();
        });
        input.trigger('focus');
    },