我的表格是
<form id="dataForm">
</form>单击的按钮是
<button id="btnAddSave" type="button">
ButtonText
</button>使用的Jquery是
$(document).ready(function () {
$("#btnAddSave").click(function () {
alert("1");
$("#dataForm").submit(function (e) {
alert("2");
e.preventDefault();
var form = $(this);
var url = "/save";
$.ajax({
type: "POST",
url: url,
data: form.serialize(),
success: function (data) {
alert(data);
}
});
});
})
});在上面的示例中,显示了第一个警报,但没有显示第二个警报。这里到底出了什么问题?我怎么才能修复它?
发布于 2020-03-23 16:36:06
正如注释中所讨论的,提交处理程序不会触发,因为它是在单击处理程序触发时附加的。你可以简单的删除所有的提交代码:
$(document).ready(function () {
$("#btnAddSave").click(function () {
alert("1");
alert("2");
// e.preventDefault(); -> this does nothinng for a button type button
var form = $("#dataForm");
var url = "/save";
$.ajax({
type: "POST",
url: url,
data: form.serialize(),
success: function (data) {
alert(data);
}
});
})
});发布于 2020-03-23 16:32:26
为什么要将两个事件处理程序绑定在一起?使用.click或.submit,不需要两个都使用。代码本身应该可以工作。
发布于 2020-03-23 16:34:39
正如我在评论中提到的,这是一个有效的示例:
$(document).ready(function () {
$("#btnAddSave").click(function () {
alert("1");
alert("2");
e.preventDefault();
var form = $("#dataForm").serialize();
var url = "/save";
$.ajax({
type: "POST",
url: url,
data: form,
success: function (data) {
alert(data);
}
});
})
});https://stackoverflow.com/questions/60809992
复制相似问题