2011-04-24 231 views
3

我已经创建了一个文本框,并且当用户键入一个命令。该命令使用jquery-ajax传递给php文件并在服务器上执行,并返回结果。这些结果通过创建div标签在浏览器上输出。在jQuery中设置焦点文本框

问题是我附加了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> [email protected]:~# " + cmdStr +"</div>" + "<div class=output>" + response + "</div>"); 
     } 

    }); 

} 

回答

13

试试这个:

success: function(response){ 
    $("#output").append("<div class=type> [email protected]:~# " + 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 
     } 
    }); 
});