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

それはコールバックがどのように機能するかではなく、成功のつづりが間違っていました。関数名または無名関数を 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');
            }
        });
    }); 
于 2012-10-17T19:09:57.120 に答える
0

問題は、フォームを取得するために使用するセレクターにある可能性が最も高いです。

var form = $('pages_form');

名前のhtmlタグはありませんpages_form;)

また、コールバックを指定する方法は明らかに間違っています。

于 2012-10-17T19:10:41.083 に答える