【发布时间】:2015-02-27 22:49:13
【问题描述】:
我有一个简单的网页,它从数据库中获取项目列表并将它们呈现为可由用户更新的表单。我正在尝试获取提交事件并使用 ajax 更新表单。我不知道如何让我的 jQuery 函数知道我新创建的表单。这是我的 HTML:
<body>
<ul class="flight-list">
<li>
<form>form stuff</form>
</li>
<li>
<form>form stuff</form>
</li>
<li>
<form>form stuff</form>
</li>
<li>
<form>form stuff</form>
</li>
... etc
</ul>
<form>Form to add new records</form>
创建新记录的表单完全符合预期,并且不是动态创建的。
这里是 jQuery:
创建表单:
$('form').on('submit', function(event){
event.preventDefault();
var form = $(this);
var flightData = form.serialize();
$.ajax({
type: 'POST', url: '/flights', data: flightData
}).done(function(data){
var i = data.length - 1;
var flight = data[i];
addFlightsForm([flight]);
form.trigger('reset');
});
});
更新表格:
$('form').on('submit', function(event){
event.preventDefault();
var form = $(this);
var flightData = form.serialize();
$.ajax({
type: 'PUT', url: '/flights/27', data: flightData
}).done(function(data){
// update specific form with new value
})
})
我知道有一些方法可以将事件附加到动态创建的元素,但我不知道该怎么做。
【问题讨论】:
-
您正在寻找的是委托事件处理。 stackoverflow.com/questions/18414695/…
标签: javascript jquery ajax forms dynamic