我正在尝试使用一个功能来以网站上的各种模式提交表单。我遇到的问题是尝试序列化表单时出现错误“ form.serialize()不是函数”。我相信我已将其范围缩小到如何分配表单变量。
提交按钮:
<button id="modalSave" class="btn btn-primary" data-url="/Donors/save" data-form="#DonorAddForm" type="button">Submit</button>
提交功能:
$(".container").on("click", "#modalSave", function() {
var form = $(this).data('form');
$.ajax({
url: $(this).data('url')
dataType: "html",
data: form.serialize(),
beforeSend: function() {
$("#loading").fadeIn();
},
success: function(data, textStatus) {
$("#modalStatus").html(data);
},
complete: function() {
$("#loading").fadeOut();
}
});
});
如果我更改行:
var form = $(this).data('form');
到:
var form = $('#DonorAddForm');
然后为“ form”变量分配一个form对象,否则将其简单地分配为一个字符串。
如何将对象分配给'form'变量而不是字符串?
$(this).data('form')
不返回DOM元素-它返回data-form属性的值,在这种情况下为string #DonorAddForm
。要检索相应的DOM元素,请使用jQuery通过id抓取该元素:
var formData = $(this).data('form'); // "#DonorAddForm"
var form = $(formData); // DOM element with id="#DonorAddForm"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句