2011-12-29 224 views
2

我想中斷並阻止使用jQuery提交表單。這是我的形式標記:使用jQuery停止表單提交

<div id="register-box"> 
     <div id="register-box-inner"> 
      <h2>Register</h2> 
      <form action="/register" method="post" id="register-form"> 
       <p><label for="username">Username:</label><input type="text" name="username"></p> 
       <p><label for="password">Password:</label><input type="password" name="password"></p> 
       <p><label for="email">E-mail:</label><input type="text" name="email"></p> 
       <p><input type="submit" value="Register" class="register"></p> 
      </form> 
     </div> 
    </div> 

和我的Javascript代碼迄今:

$('#register-form').submit(function(e){ 
    e.preventDefault(); 
    alert("hi"); 
}); 

問題是,形式仍能通過。我想使用AJAX提交表單,但是對於沒有啓用Javascript的用戶可以使用後備方式。 Javascript控制檯中也不會出現任何錯誤。

+1

可能重複http://stackoverflow.com/questions/5915893/stop-form-submission-with-submit-eventlistener ) – brendan 2011-12-29 15:13:12

回答

4

嘗試

$("form").live("submit", function() { 
     alert("hi"); 
     return false; 
    }); 
+0

仍然不起作用。我認爲問題在於我在頁面上使用'display:none'顯示了這個表單標記,然後我使用了一個jQuery lightbox插件來顯示錶單,並且它本質上是複製了標記。所以我最終在我的頁面上有兩個「註冊表格」ID。有什麼辦法呢? – 2011-12-29 15:15:59

+0

你是否會收到警報,如果有的話 – 2011-12-29 15:17:17

+0

我沒有收到警報。 – 2011-12-29 15:17:37

1

嘗試從處理程序返回false

$('#register-form').submit(function(e){ 
    e.preventDefault(); 
    alert("hi"); 
    return false; 
}); 
0

嘗試:

<p><input type="submit" value="Register" class="register" onclick="submit(); return false;"></p> 
[與提交事件偵聽停止表單提交(的