在jQuery中将焦点放在文本框上

时间:2011-04-24 18:36:02

标签: jquery ajax textbox

我创建了一个文本框,当用户键入命令时。该命令使用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 个答案:

答案 0 :(得分:15)

试试这个:

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

答案 1 :(得分: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
        }
    });
});