2012-11-12 31 views
0

我有一個窗體,我加載到通過ajax popover。該形式的定義如下:使用.on陷阱動態加載形式提交

<form id="generate_form" class="form" accept-charset="UTF-8" action="/tokens/create" method="POST"> 

我想陷阱的形式提交,並使用AJAX,而不是提交數據。因此,我添加了以下腳本:

$(document).ready(function() { 
    $(this).on('submit','#generate-form', function (e) { 
     alert('trapped?'); 
     return false; 
    }); 
    }); 

但是,當我嘗試此操作時,表單事件未被捕獲,即我從未看到警報對話框。難道我做錯了什麼?

+0

你看到在控制檯中的任何錯誤?上面的代碼中有幾個語法問題。 –

+0

我的複製和粘貼/簡化技巧存在問題。實際上,代碼具有正確的語法。 – wciu

回答

3

你拼錯"#generate-form"(下劃線,而不是短跑),忘了一些括號:

$(document).ready(function() { 
    $(this).on('submit', '#generate_form', function (e) { 
     alert('trapped?'); 
     return false; 
    }); 
}); 
+0

Doh!而已!現在感覺非常愚蠢...... – wciu

1

幾乎..:{d

$('#generate_form').on('submit', function(e) { 

    alert('trapped?'); 

    e.preventDefault(); 
    return false; 
}); 

我也建議檢查出jQuery's .on() Documentation - 有很多的在那裏有用的例子。

+1

如果這樣做,爲什麼他自己的代碼不工作?他在兩個地方使用錯字以外的正確語法,如錯過')'。 –

+0

注意到當我重讀on()文檔時。答案是他錯過了一個閉幕式。 – Labu

3

你的代碼可能斷裂了,因爲2個缺少一個右括號

$(document).ready(function() { 
    $(this).on('submit','#generate_form', function (e) { 
     alert('trapped?'); 
     return false; 
    }); // <-- added closing parentheses 
    }); // <-- added closing parentheses 
+0

對不起,你沒有看到你也有相同的答案... –

+0

我有我的實際代碼中正確的,只是錯過了他們,當我刪除了我的一些代碼。馬里奧指出,結果是錯誤的。 – wciu