2010-05-08 76 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將解決此問題。至於爲什麼你沒有看到螢火蟲發生任何事情,你的默認表單動作正在發生,提交到#,例如,無處可去...所以沒有交通螢火蟲看到。