尝试对来自 onSubmit='return function(this)' 的参数使用序列化时失败
Failure when trying to use serialize on argument from onSubmit='return function(this)'
这里是 javascript 的新手,很抱歉,如果这是初级...
所以我有一个表格,我想在确认后用它做一些 AJAX(提交后的确认框)。问题的最外层是 serialize() 不工作——它 returns 是一个空字符串。显然,我怀疑表面下还有更多关于为什么它不起作用的原因……
我的目标是让表单转到 onsubmit 方法 (confirm_delete()),然后完成一些 AJAX(当用户确认希望删除时)。无论哪种方式,我都不希望表单提交和加载新页面——因此 'return false;'——我希望 AJAX 接管。
所以……这是表格:
<form class='delete_item' method='post' onSubmit='return confirm_delete(this)'>
//lots of inputs here. . . .
<button type='submit' class='btn-xs btn-danger remove_submit'>X</button>
</form>
这是我的 javascript/AJAX 尝试……
function confirm_delete(form){
var r = confirm("Are you sure you want to delete?");
var data = form.serialize();
// var x = 9;
if (r == true) {
$.ajax({
type: 'post',
data: data,
datatype: 'json',
success: function(response){
alert('hi');
//do stuff….
}
});
return false;
} else {
return false;
}
}
谢谢。
.serialize
是一个 jQuery 方法,不是原生的 JavaScript
方法,所以你需要利用 jQuery
包装器 ($()
) 来使用它
//..
function confirm_delete(form){
var r = confirm("Are you sure you want to delete?");
//note the $(form).serialize() vs form.serialize()
var data = $(form).serialize();
//rest of your code...
这里是 javascript 的新手,很抱歉,如果这是初级...
所以我有一个表格,我想在确认后用它做一些 AJAX(提交后的确认框)。问题的最外层是 serialize() 不工作——它 returns 是一个空字符串。显然,我怀疑表面下还有更多关于为什么它不起作用的原因……
我的目标是让表单转到 onsubmit 方法 (confirm_delete()),然后完成一些 AJAX(当用户确认希望删除时)。无论哪种方式,我都不希望表单提交和加载新页面——因此 'return false;'——我希望 AJAX 接管。
所以……这是表格:
<form class='delete_item' method='post' onSubmit='return confirm_delete(this)'>
//lots of inputs here. . . .
<button type='submit' class='btn-xs btn-danger remove_submit'>X</button>
</form>
这是我的 javascript/AJAX 尝试……
function confirm_delete(form){
var r = confirm("Are you sure you want to delete?");
var data = form.serialize();
// var x = 9;
if (r == true) {
$.ajax({
type: 'post',
data: data,
datatype: 'json',
success: function(response){
alert('hi');
//do stuff….
}
});
return false;
} else {
return false;
}
}
谢谢。
.serialize
是一个 jQuery 方法,不是原生的 JavaScript
方法,所以你需要利用 jQuery
包装器 ($()
) 来使用它
//..
function confirm_delete(form){
var r = confirm("Are you sure you want to delete?");
//note the $(form).serialize() vs form.serialize()
var data = $(form).serialize();
//rest of your code...