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