重写此代码,因为serialize()不起作用

2 html javascript php ajax jquery

我有这个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
Run Code Online (Sandbox Code Playgroud)

这是在一个名为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();
Run Code Online (Sandbox Code Playgroud)

Jus*_*ner 7

serialize()方法来自jQuery.您的语句失败,因为表单未包装在jQuery中:

var form = $('#frm');
var data_string = form.serialize();
Run Code Online (Sandbox Code Playgroud)

要么:

var form = document.getElementById('frm');
var data_string = $(form).serialize();
Run Code Online (Sandbox Code Playgroud)