2

单元格内容选择适用于数字文本框(内部作为 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();
            });
        });
    }
4

2 回答 2

6

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

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

修改后的jsfiddle可以看这里:http: //jsfiddle.net/latenightcoder/TrJVK/90

于 2013-08-02T18:16:38.170 回答
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');
    },
于 2013-07-29T21:43:34.570 回答