我使用.load()将几个表单加载到不同的DIV。加载的文件类似于以下示例。
<div id="block_id-299">
<div id="content">
<form name="form1" method="post">
<input type="submit" name="field1" value="Submit">
</form>
</div>
</div>
现在我正在尝试检索提交的表单的名称,之后使用.serialize()
检索它的值。
我正在使用$('form').submit(function(){ ... }
,但由于我正在动态加载表单,因此不再适用。
任何帮助?
PS:可以使用$(document).submit(function(){
捕获事件但是如何获取表单的名称和/或ID?
答案 0 :(得分:10)
您可以使用$()。delegate:
执行此操作$(document).delegate('form', 'submit', function(event) {
var $form = $(this);
var id = $form.attr('id');
var data = $form.serialize();
// ...
});
这甚至适用于调用delegate()后添加的表单。
这可以通过监听冒泡到submit
的{{1}}事件,并测试偶数是否来自document
元素来实现。
这与form
类似,但最初不会执行选择器。
请参阅.delegate()
和.live()
文档。
答案 1 :(得分:1)
要在提交表单时获取表单属性,我们还可以使用submit函数。例如:
$("form").submit(function(){
var form = $(this);
var id = form.attr('id');
alert(id + ' form submitted');
});
答案 2 :(得分:0)
您可以使用jQuery
live事件处理程序,它也适用于动态创建的元素。
试试这个
$('form').live('submit', function(event) {
var $form = $(this);
var formName = $form.attr('name');
var formData = $form.serialize();
// ...
});
答案 3 :(得分:0)
以下代码将提醒具有'create_btn'css的按钮的表单ID,如果你想通过将(.create-btn)点更改为hash(#create-btn),你也可以通过id访问它,你可以请改用.click或.submit。
<script type="text/javascript">
$(document).ready(function () {
$('.create-btn').click(function(){
alert(this.form.id);
}) ;
});