JQueryフォームプラグイン、JQuery検証プラグイン、jqTransformプラグインを使用しています。
何かを追加または編集するために表示する非表示のフォームがあります。編集または追加アクションは、次の関数呼び出しをトリガーします。
function activateAddForm(formId,callback) {
$('#'+formId).jqTransform().validate({
submitHandler: function(form) {
$(form).ajaxSubmit( {
dataType: "json",
success: function(json) {
callback(json);
}
});
}
});
}
異なるパラメーターを使用した各呼び出し。追加のために、私はそれをと呼びます
activateAddForm('add-new-form',addToy);
編集のために、私はそれを呼びます
activateAddForm('add-new-form',editToy);
これが起こることです:
- ページをリロードします。
- 1つのおもちゃを編集します。
- フォームを送信します。
- editToy関数が呼び出されます。
- 何かを追加してみてください。
- 関数activateAddFormは、コールバックとしてaddToyを使用して呼び出されますが、フォームが送信されると、代わりにeditToy関数が呼び出されます。
リロード後に最初に行うのがおもちゃの追加である場合。次に、addToy関数が常に呼び出されます。
追加してみました:
function activateAddForm(formId,callback) {
$('#'+formId).ajaxFormUnbind();
...
}
また
function activateAddForm(formId,callback) {
$('#'+formId).resetForm();
...
}
しかし、それは機能していません。私に何ができるか考えてみませんか?
回避策の試行
行を追加するというActivaの提案:
$.removeData($('#'+formId)[0],'validator');
function activateAddForm(formId,callback) {
$('#'+formId).jqTransform();
$.removeData($('#'+formId)[0],'validator');
$('#'+formId).validate({
submitHandler: function(form) {
$(form).ajaxSubmit( {
dataType: "json",
success: function(json) {
callback(json);
}
});
}
});
}
次の原因:
- ページをリロードします。
- 1つのおもちゃを編集します。
- フォームを送信します。
- editToy関数が呼び出されます。
- 何かを追加してみてください。
- フォームeditToy関数が呼び出され、続いて関数を追加するための呼び出しが行われます。
上記の修正は機能しませんが、正しい方向にあるようです。
他にアイデアはありますか?