jquery ajax post - 第一次加载页面时没有工作

时间:2011-02-09 15:04:04

标签: php jquery

我的一个页面中有一些ajax / jquery代码,而我遇到的问题是它在第一次加载页面时不起作用。如果我刷新页面它没有任何问题。它在Firefox第一次工作。我正在使用的所有变量都没问题,因为我已经提醒他们了。我没有收到成功或错误消息。它justr似乎没有做任何事情?

有什么想法吗?

$('.window .request').click(function (e) {              
  var itm = document.getElementById('txtItm').value; 
  var qty = document.getElementById('txtQty').value;
  var msg = document.getElementById('txtMessage').value;
  var op_id = document.getElementById('txtOp_id').value;  

  $.ajax({
    type: "POST",
    url: "do_request.php?msg="+msg+"&itm="+itm+"&qty="+qty+"&op_id="+op_id,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {
      document.getElementById('div_main').style.display='none';
      document.getElementById('div_success').style.display='block';
      var row_id = document.getElementById('txtRow').value;
      document.getElementById('row'+row_id).style.backgroundColor='#b4e8aa';
    },

    error: function (XMLHttpRequest, textStatus, errorThrown) {
      alert('Error submitting request.');
    }

  });

}); 

1 个答案:

答案 0 :(得分:0)

很难确定信息可能会出现什么问题,而且听起来你没有以一致的方式对页面进行全面测试。看起来页面上有另一个元素会影响click事件,而不是处理程序逻辑本身,但是没有办法说出来。确保在页面准备就绪后绑定到click事件:

$(document).ready(function(){
  $("#uniquedomid").bind('click',function(){
    // click handler logic
  });
});

此外,由于您是JQuery的新手,您要开始考虑的一件事是JQuery可以改善您生活的各种方式。它几乎可以做到。但对于初学者,你将要开始使用:

$("#uniquedomid")

而不是

document.getElementById("uniquedomid")

$("#uniquedomid").val();

而不是

document.getElementById("uniquedomid").value