2011-09-09 21 views
2

チェックされている私は、いずれかにクラス属性を追加することができますどのようにチェックボックスをクリックにjqueryのチェックボックスが必要入力項目

$('input[type=checkbox]').bind('click',function() { 
    if($(this).is(':checked')){ 
     $('#school_0').attr('class', 'validate[required]'); 
     //$('#school_1').attr('class', 'validate[required]'); 
     //$('#school_2').attr('class', 'validate[required]'); 
    } else { 
     $('#school_0').removeAttr('class'); 
     //$('#school_1').removeAttr('class'); 
     //$('#school_2').removeAttr('class'); 
    } 
}); 

をバインドするフォーム

<input class="validate[minCheckbox[1]] checkbox" id="maxcheck_0" type="checkbox" name="children[]" value="Juliette" /> 
<input type="text" name="school[]" id="school_0" value="" /><br /> 
<input class="validate[minCheckbox[1]] checkbox" id="maxcheck_1" type="checkbox" name="children[]" value="Franck" /> 
<input type="text" name="school[]" id="school_1" value="" /><br /> 
<input class="validate[minCheckbox[1]] checkbox" id="maxcheck_2" type="checkbox" name="children[]" value="Lisa" /> 
<input type="text" name="school[]" id="school_2" value="" /> 

と、このjqueryの中でこれらの入力やチェックボックスを持っています入力はそのチェックボックスに関連していますか?

+0

は* *関連を定義しますか? – arnaud576875

+0

申し訳ありません私の英語はあまり良くありません!関連する(最初のチェックボックス、最初のチェックボックス、2番目のチェックボックス、2番目の入力、... – Chris

答えて

1

でいつでもそれ/それらを盗ん関連するテキストボックスは、チェックボックスIDにリストされている整数に従って関連付けられます。

クリックしたチェックボックスのIDを取得します。 split()その文字列は_であり、配列の2番目の位置の値にアクセスします。配列の2番目の位置の値を使用して、 "school_"の末尾に追加して、正しいテキストボックスを変更することができます。テキスト入力を想定すると

$('input[type=checkbox]').bind('click',function() { 
    if($(this).is(':checked')){ 
     var idnum = (($(this).attr("id")).split("_"))[1]; 
     $('#school_ ' + idnum).addClass('validate[required]'); 
    } else { 
     $('#school_' + idnum).removeClass('validate[required]'); 
    } 
}); 
+0

ちょうど完璧です...ありがとうso much – Chris

+0

@Chrisどういたしまして! –

0

チェックボックスに

データ-id属性を追加し、すべてのチェックボックスは、この「maxcheck_」+いくつかの整数とすべてのようにフォーマットされたIDを持っている場合は、

$(this).attr('data-id'); 
+0

私のページはhtml5ではなく、データIDなしで有効にする必要があります;-( – Chris

1

は常にチェックボックスの後に、これは動作するはずの次の要素である:

$(this).next("input").addClass("myclass"); 
0
$('#school_0').addClass('validate[required]'); 
関連する問題