到目前为止我做了什么
我在Perl中使用CGI::Application
和HTML::Templates
创建了一个类似于this的网站。
对于我的数据库中的每个数据集,将显示底部表单。例如。 400次。
底部表单的想法是用户应该能够对现有数据集进行更改,其中顶部表单创建新数据集。
顶层表单起作用,并使用Ajax在数据库中查找非法值,不允许用户输入。
问题
每个数据集都会有一个“保存”按钮,如屏幕截图所示。
如何仅提交与使用Ajax按下的“保存”按钮对应的数据集?
我可以使用纯JQuery做到这一点并且隐藏input
就像这样
<form action="" method="post">
<input name="anchor" value="34" type="hidden">
<input name="title" type="text" />
...
<button type="submit">Save</button>
</form>
但是没有Ajax,我无法首先检查数据库中的非法值。
Ajax代码如何显示,只提交保存按钮所属表单的数据集?
答案 0 :(得分:2)
您可以使用.serialize()
方法:
$('form').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
// the AJAX request succeeded => do something
// with the results returned by the server
}
});
return false;
});
这将订阅所有表单的提交事件(也许您可以调整选择器以仅将其限制为表中包含的表单),并且在提交时它将取消默认操作并通过序列化所有的发送AJAX请求表格领域。