使用ajax发送表单数据

adi*_*b16 12 javascript php ajax jquery

我想用ajax发送表单中的所有输入.我有一个这样的表单.

<form action="target.php" method="post" >
    <input type="text" name="lname" />
    <input type="text" name="fname" />
    <input type="buttom" name ="send" onclick="return f(this.form ,this.form.fname ,this.form.lname) " >
</form>
Run Code Online (Sandbox Code Playgroud)

在.js文件中,我们有以下代码:

function f (form ,fname ,lname ){
    att=form.attr("action") ;
    $.post(att ,{fname : fname , lname :lname}).done(function(data){
        alert(data);
    });
    return true;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我不想使用表格数据.

Meh*_*ami 27

只要我们想要发送所有具有name属性的表单输入字段,您就可以对所有表单执行此操作,而不管字段名称如何:

第一解决方案

function submitForm(form){
    var url = form.attr("action");
    var formData = {};
    $(form).find("input[name]").each(function (index, node) {
        formData[node.name] = node.value;
    });
    $.post(url, formData).done(function (data) {
        alert(data);
    });
}
Run Code Online (Sandbox Code Playgroud)

第二个解决方案:在此解决方案中,您可以创建一个输入值数组:

function submitForm(form){
    var url = form.attr("action");
    var formData = $(form).serializeArray();
    $.post(url, formData).done(function (data) {
        alert(data);
    });
}
Run Code Online (Sandbox Code Playgroud)