0

我有一个用于提交表单的 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')
        });
    }); 

它似乎不想去我硬编码它的url天气或使用表单动作属性。我需要做什么才能提交我的表格。

这很奇怪,因为如果我按 Enter 键,它会提交表单,但会绕过 ajax 请求。

4

4 回答 4

1
var form = $('pages_form');

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

var form = $('#pages_form');

如果它的 ID。

如果上课那么

 var form = $('.pages_form');
于 2012-10-17T19:10:49.570 回答
0

一些更正:

var form = $('pages_form');

不是指有效元素。如果 'pages_form' 是你的表单的 id,那么你需要使用这个:

var form = $('#pages_form');

此外,您拼写错误的“成功”,并且它没有所需的格式。将该行更改为

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

我认为在修复这些之后,您的代码应该可以工作。:)

好的,那么需要一些验证,尽管它们可能看起来很明显。

  1. 确保 i 包含一个值并且有一个具有相应 id 的输入元素,因此如果 i 等于 1,那么您有一个 id 为“position1”的输入元素。
  2. 确保您的表单正确设置了正确的操作属性。
于 2012-10-17T19:13:00.680 回答
0

这不是回调的工作方式,而且您的成功拼写错误。您将函数名称或匿名函数传递给成功方法。

工作版本:

$('#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');
            }
        });
    }); 
于 2012-10-17T19:09:57.120 回答
0

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

var form = $('pages_form');

没有带有名称的html 标记pages_form;)

此外,您指定回调的方式显然是错误的。

于 2012-10-17T19:10:41.083 回答