AJAX请求不提交我的表单

时间:2012-10-17 19:08:20

标签: php ajax codeigniter

我有一个用于提交表单的ajax请求。

$('#position'+i).change(function () { 
        var data = $(this).attr('value');
        var form = $('#pages_form');
        $.ajax({
            type: "POST",
            url: form.attr('action'),
            data: data,
            succes: alert('Postion has been saved')
        });
    }); 

似乎想要去网址天气我硬编码或使用表单操作属性。我需要做些什么来提交表格。

它很奇怪,因为如果我点击输入它将提交表单,但它将绕过ajax请求。

4 个答案:

答案 0 :(得分:1)

var form = $('pages_form');

这很糟糕,这是什么样的选择器,据我所知,没有pages_from标签。 它应该是

var form = $('#pages_form');

如果是其身份。

如果上课那么

 var form = $('.pages_form');

答案 1 :(得分:0)

这不是回叫的工作方式,也是你拼错的成功。您将函数名称或匿名函数传递给success方法。

工作版:

$('#position'+i).change(function () { 
        var data = $(this).attr('value');
        var form = $('#pages_form'); // Is this an id?
        $.ajax({
            type: "POST",
            url: form.attr('action'),
            data: data,
            success: function () {
               alert('Postion has been saved');
            }
        });
    }); 

答案 2 :(得分:0)

您的问题很可能在于您用来获取表单的选择器:

var form = $('pages_form');

没有 html标记,名称为pages_form;)

另外,你指定回调的方式显然是错误的。

答案 3 :(得分:0)

一些更正:

var form = $('pages_form');

不是指有效元素。如果'pages_form'是表单的ID,那么您需要使用:

var form = $('#pages_form');

另外,你拼写错误的'成功',它没有所需的格式。将该行更改为

success: function() {alert('Postion has been saved');}

我认为在修复后你的代码应该可行。 :)

好的,然后需要进行一些验证,尽管它们看起来很明显。

  1. 确保我包含一个值,并且有一个带有相应id的输入元素,所以如果i等于1,那么你有一个id为'position1'的输入元素。
  2. 确保您的表单正确设置了正确的操作属性。