我有这个ajax jquery代码:
var form = document.getElementById('frm');
var data_string = form.serialize();
$.ajax({
type: "POST",
url: "my_php_file.php",
data: data_string,
success: function(data) {
}//end success function
}) //end ajax call
这是一个名为ajax.js的外部文件。
我将ajax.js包含在名为“show.html”的html文件中。 我还将jquery.js包含到show.html
中我已尝试使序列化工作,但代码在执行序列化之前就已终止。 我不知道为什么。但我确信它是导致它的序列化。
是否可以对此进行一些简单的修改,因此它不使用序列化?
由于
更新:
这段代码(来自下面的答案)似乎也部分工作,当我提醒“表单”变量时,消息显示“HTML表单对象”,因此它找到了表单。 然后当我提醒“data_string”变量时,消息显示“frm = undefined”。
任何想法为什么?
var form = document.getElementById('frm');
var data_string = $(form).serialize();
答案 0 :(得分:7)
serialize()
方法来自jQuery。您的语句失败,因为表单未包装在jQuery中:
var form = $('#frm');
var data_string = form.serialize();
或者:
var form = document.getElementById('frm');
var data_string = $(form).serialize();
答案 1 :(得分:1)
我的猜测是你使用getElementByID引用“传统”DOM对象,而不是通过jQuery使用它(它将遍历表单并添加信息)。尝试使用:
var data_string = $('#frm').serialize();