我想发一个ajax请求 当我按下表单按钮时,我需要获取表单本身 我的代码是
$(document).ready(function() {
$(document).on('click', '.finalEdit', function (e) {
e.preventDefault();
var form = $(this).closest('form');
$.ajax({
data: form.serialize(),
url: form.attr('action'),
type: "POST",
dataType: "html",
success: function (result) {
// feel free to execute any code
// in the success callback
$('#divToRefresh').html(result);
},
error: function (result) {
alert("Failed");
}
})
return false;
});
$(this).closest('form')在页面中获取另一个表单我不知道为什么
这是我正在寻找的形式
<tr hidden="hidden">
@using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { @class = "Edit-form" }))
{
@Html.ValidationSummary(true)
<td>
@Html.HiddenFor(model => model.supplier.SupplierID, new { @Value = item.SupplierID })
</td>
<td>
@Html.TextBoxFor(model => model.supplier.SupplierName, new { @Value = item.SupplierName })
</td>
<td>
<input type="submit" value="Edit" class="finalEdit"/>
</td>
}
</tr>
答案 0 :(得分:2)
如果.finalEdit
按钮在表单标签内,则可以使用this.form
获取元素所属的表单。然后,您可以将其包装在$()
中,以获取表单元素为var form = $(this.form);
的jQuery对象。
如果找不到表单,请确保标签正确嵌套和关闭。另外,请确保输入内容没有form
attribute。
答案 1 :(得分:0)
$(this).closest('form')
没有获得另一种形式。它实际上没有得到任何形式。
我不知道为什么.closest('form')
在那种情况下不起作用
无论如何这行代码对我有用
var form = $(this).parent().parent().children(":first");