2011-12-28 9 views
0

テーブルの編集ボタンをクリックすると、フォームが作成されます。ここのフィドルを見てください: http://jsfiddle.net/UtNaa/42/jqueryを使って動的にフォームを構築する

問題は正しい形式を表示していないことです。 AXISの場合:

if (cameratype == "AXIS") 

8フィールドのフォームを作成します。そうでない場合は、5フィールドのフォームが作成されます。この動作を最もよく確認するには、フィドルに行き、最初の行「編集」ボタンをクリックします。それが構築するフォームを参照してください、それは5つのフィールドがあります。次に、次のカメラタイプの「編集」ボタンをクリックします。 8つのフィールドを表示する場合、同じ5つのフィールドが表示されます。

このフィドルでブラウザをリフレッシュし、今度はテーブルの2番目の[編集]ボタンをクリックすると、8つのフィールドが表示されていることがわかります。しかし、最初の行の「編集」をクリックしても、5つのフィールドの代わりに8つになります。

cameratype = WEBCAMをクリックすると5つのフィールドが表示され、cameratype = AXISをクリックすると8つのフィールドが表示されます。この2つの間には共通のフィールドがあることに注意してください。私が間違っていることは何ですか?

答えて

1

このライン:

if (mydiv.find("form").length) { 

はあなたの問題を与えています。本質的には、最初に作成したのと同じフォームを表示するだけです。 cancel/applyのフォームを削除するか、正しいタイプのフォームが利用可能かどうかを検出し、そのフォームを選択/表示する必要があります。 $.empty()使用例を作業する

http://jsfiddle.net/UtNaa/44/

+0

フィックスを更新するためのthx! – Tom

1

あなたの問題は、この行です:あなたは、「編集」ボタンを打つ最初の時間の後

if (mydiv.find("form").length) { 
    mydiv.show(); 
} 

、フォームが移入され、そしてダイナミックなコントロールがありませんそれは単にmydiv.showを呼び出したので再生されました。

関連する問題