2012-02-05 12 views
1

jQueryとマルチ配列フォームについての助けが必要です。私のフォームは次のようになります:jQueryと連想フォームは、有効化と無効化のチェックボックスを使用してヘルプが必要

<form> 
<div class="box" style="border:1px #000 solid"> 
    <input type="checkbox" name="clause[3][chk]" class="clause_check"> 
    <input type="text" name="clause[3][number]" class="clause_number numericonly" maxlength="2" size="2" disabled="disabled"> 
    This is a clause with a text field <input class="clause_input" name="clause[3][field][-_transfer_charges_-]" disabled="disabled" type="text"> to be filled in. 
</div> 
<div class="box" style="border:1px #000 solid"> 
    <input type="checkbox" name="clause[2][chk]" class="clause_check"> 
    <input type="text" name="clause[2][number]" class="clause_number numericonly" maxlength="2" size="2" disabled="disabled"> 
    This is a clause without a text box to fill. 
</div> 
<div class="box" style="border:1px #000 solid"> 
    <input type="checkbox" name="clause[1][chk]" class="clause_check"> 
    <input type="text" name="clause[1][number]" class="clause_number numericonly" maxlength="2" size="2" disabled="disabled"> 
    Another clause with a 
    <input class="clause_input" name="clause[1][field][-_transfer_charges_-]" disabled="disabled" type="text"> 
    to be filled in. 
    <ol type="a"> 
     <li>This is a sub clause with a <input class="clause_input" name="clause[1][field][-_noc_charges_-]" disabled="disabled" type="text"></li> 
     <li>Last sub clause.</li> 
    </ol> 
</div> 
</form> 

すべてのテキストボックスフィールドは、デフォルトでは無効になっています。それぞれのチェックボックスフィールドをチェックすると、同じdivのすべてのテキストボックスフィールドがアクティブになり、チェックを外すとその逆が実行されます。私はどこから始めたらいいのか分かりません。私は、提出されたデータを処理するためにPHPを使用します。どんな助けもありがとう。あなたは動的にあなたが見てみましょう

$(document).on("change",":checkbox",function(e){ 
... 
// rest of the code remains the same 

答えて

1

このデモではhttp://jsfiddle.net/tAkGH/ スクリプト:

$('body').on('change', '.clause_check', function() { 
    $(this).closest('.box').find(':input:not(".clause_check")').prop('disabled', !$(this).is(':checked')); 
}) 
+0

チェックボックスが...申し訳ありません、本当によくないjqueryのコーダをオフにした後に無効になります。 –

+0

@JadeRyanIbarrola mybadが回答とフィドルを更新しました – Rafay

+0

3nigmaとdfsqの両方の回答がうまくいきました。私は両方の答えがjqueryバージョン1.6.4で動作していないことに気づいた。私はちょうど私のjqueryを更新し、魅力的なように働いた。あなたが与えた答えが –

1

のようにそれを使用することができ、フォームを生成する場合

:あなたは

$(function(){ 

    $(":checkbox").on("change",function(e){ 

    if($(this).is(":checked")) 
     $(this).closest("div.box").find(":input").prop("disabled",false); 
    else 
    $(this).closest("div.box").find(":input:not(:checkbox)").prop("disabled",true);  
});  
}); 

DEMO

UPDATEを試すことができ、マークアップを与え

+0

申し訳ありませんが、実際のフォーム(動的に作成されたもの)を試しても何も起こりません。マークアップは同じである可能性があります。 –

+0

最終的にjqueryバージョン(1.6.4)を1.7.1にアップデートした後に、それを動作させました。以前のjqueryバージョンではうまく動作しないようです。どうもありがとう! –

+0

動的フォーム用に更新されました – dfsq

関連する問題