2012-06-10 3 views
1

У меня проблема: Если кто-то печатает в поле, это должно сделать текстовое поле для всех остальных пользователей как только для чтения и показать msg как «кто-то печатает прямо сейчас».ajax call on keyup()

<div id="msg"></div> 
<input type="text" name="field" id="field" /> 

$("#field").keyup(function(){ 
    var isTyping = $('#field').val(); 
    var data = 'result=' + isTyping; 
    var msg = $('#msg'); 
    $.ajax({ 
     type: 'POST', 
     url: "includes/control.php", 
     data: data, 
     cache: false, 
     success: function(){ 
      msg.html(html); 
     } 
    }); 
}); 

И это control.php:

if($_POST['result']){ 
    echo "someone is typing"; 
} 

Эта работа, как Шарме для мыши() метод, но не для KeyUp().

Спасибо за любую помощь.

+0

Является ли ваша функция '$ (" # field "). Keyup()', находящейся в вашем обратном вызове 'document.ready'? – Lix

+0

yep находится внутри document.ready – MadDorris

ответ

3

Странно, что вы отправляете запрос Ajax всякий раз, когда пользователь, но изменение:

success: function(){ 
    msg.html(html); 
} 

в

success: function(html){ 
    msg.html(html); 
} 

, поскольку ваш html не был определен как ответ AJAX.

+0

Проблема заключалась в обратном вызове '.click()' и обратном вызове 'keyup()'. Он сказал, что работает с щелчком мыши. Хотя это ** полезно ** - я не думаю, что это проблема. – Lix

+2

@Lix: Очевидная проблема с кодом, который он опубликовал **, - это то, что я вижу. Давайте * подождать * и посмотрим. – Sarfraz

+0

Почему это странно? Это всего лишь метод предотвращения, чтобы пользователь не печатал, если кто-то другой уже готов, набрав. так или иначе, это не было решением. – MadDorris