2012-03-30 13 views
0

jQueryを使用して非常に重いJavascriptアプリケーションを作成しています。私が直面している問題の1つは、AJAXフォームの投稿を行うときです。最初に、フォームはサーバー側のテンプレートエンジンからレンダリングされ、これらのフォームにはデフォルト値が設定されています。フォームには、SAVEとCANCEL(復帰)という2つのオプションがあります。ユーザーが「SAVE」をクリックすると、フォームデータはjQuery経由でサーバーにPOSTされます。ユーザーが「キャンセル」をクリックすると、Javascriptのreset()関数がフォーム上で呼び出されます。AJAXフォームをリセットする

フォームにフィールドを入力/更新してから保存すると、実際の問題が発生します。フォームをもう一度編集して「キャンセル」をクリックすると、フォームは元の状態(最初のページのレンダリング時のフォームの状態)に戻り、最後のAJAX送信の状態に戻りません。

Javascriptのreset()関数は、ページのレンダリングで設定された 'value'、 'checked'などの属性を使用しているようです。この場合、reset()メソッドがAJAX経由でフォームを提出した最後のポイントに戻るようにフォームの値を更新するにはどうすればよいですか?

答えて

2

フォームの「初期値」がAJAXサブミットのものになるようにフォームを「再ペイント」する必要があります。フォームのリセットは、要素がページにペイントされたときの値に依存します。 here's a demoの概念を表示するには

テンプレートと成功した値で、そのフォームを再構築するだけです。あなたは余分なHTTPリクエストをしないように、ヒヒのようなJSテンプレートエンジンを使用して、このテンプレートをローカルでキャッシュすることができます。

関連する問題