0

最初にjqueryフォーム検証プラグインを使用して入力の検証を行った後、ajaxでjsRoutesを使用してフォームを送信しようとしています。問題は、ajax呼び出しのパラメーターに「data:form」を追加すると、応答ハンドラーが呼び出されないことです。問題をさらに説明するためのいくつかのコード:

jsRoutes.controllers.Application.authenticate().ajax({
    data : {
        form : this //this messes things up!
    },
    success : function(data) {
        window.location = "/"; //never called with the above data stuff
    },
    error : function(err) {
        alert(err); //never called with the above data stuff
    }
});

コントローラのフォームフィールドを読み取ることができます。もちろん、1つの解決策は、フォームからすべてのフィールドを手動でデータセクションに抽出することです(以下のように)が、これは望ましくありません。他に解決策はありますか?

data : {
    username : <username from form>
    password : <password from form>
},
4

1 に答える 1

3

<form>タグに一意の ID 属性を設定します。つまり<form id="my_form" ...>、後で ID を jQuery セレクターとして使用してシリアル化します。

   jsRoutes.controllers.Application.authenticate().ajax({
    data : $("#my_form").serialize(),
    success : function(data) {
        // ...
    },
    error : function(err) {
        // ...
    }
});

ブラウザー内検査ツールFireBug(formattedつまり

于 2012-08-12T12:00:04.587 に答える