在jQuery中将焦点设置到文本框

5
我已经创建了一个文本框,当用户输入命令时,使用jquery-ajax将该命令传递给php文件,在服务器上执行,并返回结果。这些结果通过创建div标签在浏览器上输出。
问题是我正在追加div标签。当我追加时,我的文本框似乎失去了焦点,我必须向下滚动页面才能看到我正在输入的内容。
以下是接收我在文本框中输入的命令的函数。
$(function() {
    $('#cmd').keydown(

    function(event) {
        if (event.keyCode == 13) {
            event.preventDefault(); /*you can call your function here*/
            var tmp = $(this).val();
            $('#cmd').val('');
            commands.push(tmp);

            MyFunction(tmp);
            /*still you can it here*/
        }
    });
});

这个函数接收返回的值,并创建div标签。

function MyFunction(msg) {
    var cmdStr = msg;
    $.ajax({
        url: 'exec.php',
        dataType: 'text',
        data: {
            q: cmdStr
        },
        success: function(response) { 

    $('#output').append("<div class=type> www-data@ubuntu:~# " + cmdStr +"</div>" + "<div class=output>" + response + "</div>");
        }

    });

}
2个回答

16

试试这个:

success: function(response){
    $("#output").append("<div class=type> www-data@ubuntu:~# " + cmdStr +"</div>" + "<div class=output>" + response + "</div>");
    $("#cmd").focus(); //Wil focus your textbox
}

3

试试这个:

$(function() {
    $('#cmd').keydown(

    function(event) {
        if (event.keyCode == 13) {
            event.preventDefault(); /*you can call your function here*/
            var tmp = $(this).val();
            $('#cmd').val('');
            commands.push(tmp);

            MyFunction(tmp);
            $(this).focus(); // Set the focus back on to the #cmd element
        }
    });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接