如何将简单表单​​提交转换为ajax调用;

vee*_*er7 12 html javascript ajax

我有一个带输入字段的表单,可以像访问一样访问

var algorithm = document.forms["algoForm"]["algorithm"].value;
var input = document.forms["algoForm"]["input"].value;
Run Code Online (Sandbox Code Playgroud)

早先的电话是

document.forms["algoForm"].submit();
Run Code Online (Sandbox Code Playgroud)

形式是

<form name="algoForm" method="post" action="run.do">
Run Code Online (Sandbox Code Playgroud)

一切运行正常
现在我想将它转换为ajax调用,以便我可以在同一页面上使用来自java代码的返回数据.所以我使用了类似的东西

        var algorithm = document.forms["algoForm"]["algorithm"].value;
        var input = document.forms["algoForm"]["input"].value;
        var data = 'algorithm = ' + algorithm + '&input = ' + input;


    $.ajax(
            {
                url: "run.do",
                type: "POST",
                data: data,
                success: onSuccess(tableData) 
                { //line 75
                    alert(tableData);
                }

            }
        );
Run Code Online (Sandbox Code Playgroud)

但是上面的代码没有运行.请帮助我让它运行

Ara*_*ani 12

试图使您的代码功能.试试这个:

var data = $("form[name=algoForm]").serialize();
$.ajax({
    url: "run.do",
    type: "POST",
    data: data,
    success: function(tableData){
        alert(tableData);
    }
});
Run Code Online (Sandbox Code Playgroud)


Flo*_*ine 5

data 期望一个文字对象,所以你需要:

var data = {
    'algorithm': algorithm,
    'input': input
};
Run Code Online (Sandbox Code Playgroud)


vee*_*er7 1

我不知道怎么办,但这运行得很好

    var algorithm = document.forms["algoForm"]["algorithm"].value;
    var input = document.forms["algoForm"]["input"].value;

    $.post('run.do', {  
            algorithm  : algorithm,
            input      : input
        }, function(data) {                  
            alert(data);
        }
    );
Run Code Online (Sandbox Code Playgroud)