2012-04-20 5 views
0

ページ上に動的に生成されるフォームの量があり、すべてのフィールドとcssクラスに読み取り専用が設定されています。各フォームには、アンカータグ内に独自の編集ボタンがあります。このボタンをクリックすると、removeClass()およびattr( 'readonly'、false)を使用してその編集ボタンに関連するフォームを表示します。しかし、クラスクリックハンドラでfuncを指定すると、ページ上のすべてのフォームが望ましい結果ではないことが明らかです。読み取り専用と多重の複数のフォーム

私は自分自身で解決策に取り組んでいきたいと思っていますが、誰かが何か記事や何かを知っていれば、私は見て/消してください!

ありがとうございます。

+0

クリックハンドラで 'removeClass()'を呼び出すフォームへの参照はどうやって取得していますか?フォームを取得するために '$(this).parent()'などへの何らかの参照を使用していますか? – mellamokb

答えて

0

SOLVED! hasClass( 'selected')){/ /}} {{{{{{{{}} {{//ここではDO STUFFはここに$(this)。亲()。兄弟( 'テーブル')。removeClass( 'selected');} else {$(this).parent()。siblings( 'table')。attr( 'class '、' selected '); //ここではSTUFFを実行}});

0

特定のフォームを参照するには、固有の識別子が必要です。

これはいくつかの方法で実行できます。最も簡単なのは、各フォームにidを付けることです。各クリックハンドラは特定のIDを見つけることができます。

しかし、ボタンがそれぞれのフォームの内側にあると仮定すると、より一般化された解決策が得られます。

<form> 
    <!-- your form elements --> 
    <button class="edit_button">Edit this form</button> 
</form> 
<form> 
    <!-- your form elements --> 
    <button class="edit_button">Edit this form</button> 
</form> 
<form> 
    <!-- your form elements --> 
    <button class="edit_button">Edit this form</button> 
</form> 
<form> 
    <!-- your form elements --> 
    <button class="edit_button">Edit this form</button> 
</form> 
. 
. 
. 

などとなる。

クリックハンドラでは、フォームのクリック(ボタン)のターゲットの最初の親を検索し、それに応じて処理することができます。

http://api.jquery.com/parent/

+0

が解決しました! ($ this).parent()。siblings( 'table')。hasClass( 'selected')関数は、 )){removeClass() '選択' // DO STUFF HERE $(この).parent()兄弟( 'テーブル');。。 }他{ $(この).parent()。 ( 'table')。attr( 'class'、 'selected'); // DO STUFF HERE } }); – user1293351

関連する問題