#jquery #ajax #textbox
#jquery #ajax #текстовое поле
Вопрос:
Я создал текстовое поле, и когда пользователь вводит команду. Эта команда передается в php-файл с помощью jquery-ajax и выполняется на сервере, после чего возвращаются результаты. Эти результаты выводятся в браузере путем создания тега 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>");
}
});
}
Ответ №1:
Попробуйте это:
success: function(response){
$("#output").append("<div class=type> www-data@ubuntu:~# " cmdStr "</div>" "<div class=output>" response "</div>");
$("#cmd").focus(); //Wil focus your textbox
}
Ответ №2:
Попробуйте это:
$(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
}
});
});