2010-05-08 153 views
0

我写这个页面,因为某些原因,当我依序按一下[上提交任何操作(在萤火虫检查,没有提交正在发生的事情)jQuery的不张贴因某种原因

<head> 
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
    <script type="text/javascript"> 

     $('form#login').submit(function() { 
      $.ajax({ 
       type: 'POST', 
       url: 'http://my.site/login.php', 
       data: this.html(data), 
       success: success, 
       dataType: dataType 
      }) 

     }); 






    </script> 
</head> 
<body> 
    <form action="#" id="login"> 
     <input type="textbox" id="UserName" value="user"> 
     <input type="textbox" id="Password" value="password"> 
     <input type="submit" value="submit"> 
    </form> 
</body> 

+0

您应该从提交处理程序返回'false'以避免跳转。 (如果您将HTML中的动作URL更改为真实链接,则应避免提交两次,如果希望表单在不使用JavaScript的情况下执行,则应该执行此操作)。“$ .post”更易于使用 - “$ .ajax '是用于手工制作的AJAX查询,你很少需要它。 – Tgr 2010-05-08 16:57:17

回答

3

你需要用你的代码在运行document.ready,像这样:

$(function() { 
    $('form#login').submit(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'http://my.site/login.php', 
      data: this.html(data), 
      success: success, 
      dataType: dataType 
     }) 

    }); 
}); 

当前$('form#login')在表单出现在页面之前正在运行,所以它没有找到任何与提交处理程序挂钩的东西,因此它将等待运行,直到document.ready将解决此问题。至于为什么你没有看到萤火虫发生任何事情,你的默认表单动作正在发生,提交到#,例如,无处可去...所以没有交通萤火虫看到。

相关问题