.on('click')イベントを使用して新しいボタンを作成したときに同様のコードが機能していましたが、フォームに付属のボタンを使用する必要があります。イニシャライザに次の行を追加しました。
var options =
{
data:
{
"create": _this.toBeCreated,
"update": _this.toBeUpdated,
"destroy": _this.toBeDeleted
},
dataType: 'script',
type: 'PUT',
url: 'custom_statuses/modify_statuses'
};
$(_this.delegator.$target.find(".UIForm")[0]).ajaxForm(options);
ハードコードされた値をデータにプラグインすると、AJAX呼び出しでそれらが返されるため、このコードは半ば機能します。
ただし、これらのJavascript配列(空ではないことを確認)を使用しようとすると、最後の要素のみがAJAXを介してプッシュされます。
例えば:
toBeDeleted = [1,5,9,7];
戻る必要があります:
"delete": [1,5,9,7]
実際に戻ります:
"delete": "7"
何が問題なのかわかりませんが、このコードは、以前はボタンに接続された.on(クリック)で機能していました。それは似ているように見えました:
$.ajax({
type: 'PUT',
url: 'custom_statuses/modify_statuses',
dataType: 'script',
data:
{
"create": _this.toBeCreated,
"update": _this.toBeUpdated,
"destroy": _this.toBeDeleted
}
});