有没有一种方法可以在不调用ajax调用的提交函数的情况下实现序列化?我到处检查过,似乎可以为这个特定问题找到一个不错的答案。这是当我单击表单中的按钮时调用的 Java 脚本函数。
document.forms[FORMNAME].submit();
相反:
var form = $(document.forms[FORMNAME]);
$.ajax({
type : "POST",
url : form.attr('action'),
data : form.serializeArray(),
success : function(data) {
console.log("2");
},
error : function() {
console.log("3");
},
complete: function() {
console.log("4");
}
});
运行时出现此错误。
Uncaught TypeError: form.attr is not a function
我也尝试过这个。
var form = $(document.forms[FORMNAME]);
$.ajax({
type : "POST",
url : $(form).attr('action'),
data : $(form).serialize(),
success : function(data) {
console.log("2");
},
error : function() {
console.log("3");
},
complete : function() {
console.log("4");
}
});
当我这样做时,我真的得到了我的表单$(document.forms[FORMNAME])
。
似乎只有在我使用它时才有效,但这不是我想要的。
document.forms[FORMNAME].submit(function(event){
// Stop form from submitting normally
event.preventDefault();
var $form = $(this);
//AJAX STUFF
});
最佳答案
您应该使用以避免 Uncaught TypeError: form.attr is not a function
$(form).attr('action')
并用于序列化表单数据使用
$(form).serialize()
关于javascript - 序列化表单而不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34298311/