2012-03-08 6 views
0

フォームに問題があります。私のサーブレットは古いフォームパラメータ(JQuery AJAX)を受け取り続けます

機能新しい(){

$('#new').load("Insert.jsp"); 
}; 

挿入ページがダイアログボックスです:

は、私はそれをクリックしたとき、それは、このスクリプトを実行することをボタンがあります。それは4つのタブを持ち、各タブは独自のフォームを持っています。

私のデータベースに数字「10」を挿入したいとします。だから私は10を書いてボタン登録をクリックします。登録ボタンがこのスクリプトを実行します:

function insert() { 
$('#insert').load("ServletInsert", 
       $('#form').serialize()); 
    }; 

私のサーブレットはフォームを受信し、それをデータベースに挿入します。これまでのところ問題ありません。

ダイアログボックスを閉じてもう一度開くと、何も挿入できません。数字 "20"を挿入しようとすると、列が主キーであるために数字 "10"を再び使用できないため、データベースがSQLExceptionをスローします。

問題は、私が何か新しいものを書いても、私のフォームに古い値を保持しています(閉じた後に再度開いた後)。

どうか、私にこれを手伝ってもらえますか?

+0

はあまりにもあなたのダイアログボックスのコードを投稿してください。 jquery-uiを使用していますか? – DG3

+0

はい私です。私は大量のスクリプトレットを使用しています。 – Bolaum

答えて

0

一意でないIDを使用している可能性があります。フォームIDをクラスに変更してから、クラスごとに選択してみてください。

<form class="form"> 

$(".form").serialize(); 

しかし、たとえそれが正しく動作しません、あなたはイベントの発信元という要素に基づいてフォームを選択する必要があります。

UPDATE
DOM内の既存の重複ダイアログを防止するためのダイアログを削除し、ダイアログのクローズイベントにハンドラを追加します。デフォルトでは、ダイアログを閉じてもそれを隠すだけで、削除されません。

$("#dialog").dialog({ 
    close: function(){ 
     $(this).remove(); 
    } 
}); 
+0

はい固有のIDを使用しています。 – Bolaum

+0

最初のフォームが送信され、ダイアログが閉じられたら、ダイアログを削除しますか?または、単に古いものを再度開くか、古いものを削除せずに新しいものを作成しますか? –

+0

いいえ私はそれらを削除しません。私はちょうどX(またはヒットEsc)をクリックして閉じると、再度Insertをクリックします。 – Bolaum

関連する問題