.keyup()只工作一次,为什么?

时间:2011-12-10 11:23:51

标签: javascript jquery ajax

我正在使用这个非常简单的jquery函数,但它似乎只适用于第一个keyup ..

$('#cmentuser').keyup(function() {
 var mess = document.getElementById('cmentuser').value;
 var dataString = 'message='+ mess; 

    $.ajax({  
  type: "POST",  
  url: "atuamae.org/comentbyuser.php",  
  data: dataString,  
  success: function() {  
 }  
});
});

关于如何保持活跃的任何想法?

3 个答案:

答案 0 :(得分:3)

它也可以使用以下形式(将mess更改为jQuery(this).val()并在编码数据字符串时依赖于jQuery):

$('#cmentuser').keyup(function() {
    $.ajax({  
        type: "POST",  
        url: "atuamae.org/comentbyuser.php",  
        data: {
            'message': jQuery(this).val()
        },  
        success: function() {
            // success callback
        }  
    });
});

证明它有效:jsfiddle.net/xfxPR/

您可能正在动态更改某些元素(例如,更改ID或假设id不需要是唯一的),或者可能取消绑定事件。只需确保附加事件并保持附加到您需要的元素。

答案 1 :(得分:0)

试试这个

$('#cmentuser').live('keyup',function() {
 var mess = $(this).val();
 var dataString = 'message='+ mess; 
    $.ajax({  
  type: "POST",  
  url: "atuamae.org/comentbyuser.php",  
  data: dataString,  
  success: function() {  
 }  
});
});

答案 2 :(得分:0)

$(document).on('keyup', '#cmentuser', function(e) {//try to find lower element then doc
   var dataString = 'message='+ $(e.target).val();

   $.ajax({  
      type: "POST",  
      url: "/comentbyuser.php", //no cross domain requests, no need for domain name
      data: dataString,  
      success: function() {}  
   });
});