私の HTML ページには、いくつかのフォームがあります。
それらはすべて次のパターンに従います。
- 各フォームは div と呼ばれる
"form-optional"
- この DIV 内にはチェックボックスがあり、クラスにラップされています。
"form-enable"
- 実際のフォームのクラスは
"form-main"
.
ユーザーがチェックボックスをクリックすると、「フォームメイン」が非表示になるように、Jqueryを使用したい。ただし、クリックされたチェックボックスと同じ "form-optional" div に属するフォームのみを非表示にする必要があります。他のすべてのフォームは変更しないでください。
Jquery コマンド.parent()を使用してクラスの親を見つけ、それをfind()と組み合わせてその parent() 内の特定のクラスを見つけることができることを私は知っています。ただし、これらのコマンドを使用すると、機能しないようです。
これが私のJqueryです:
// JavaScript Document
(function($)
{
$(document).ready(function(){
$(".form-optional .form-enable input").click(function(){
if(($this).attr('checked')){
$(this).parent().find('.form-main').fadeIn();
}
else
{
$(this).parent().find('.form-main').fadeOut();
}
});
});
})(jQuery);
ここに私のHTMLがあります:
<div class="form-optional">
<p class="form-enable">
<input name="personaldetails" type="checkbox" value="">No Personal Details
</p>
<p class="form-explanation">If this product is a gift, you can tick the box, to omit the personal details</p>
<form name="frmPersonal" class="form-main">
Name:
<input type="text" name="ordPersonalInfo1" value="" onkeyup="Restrict_Chars(this.form.ordPersonalInfo1,30);">
</form>
</div>
<div class="form-optional">
<p class="form-enable">
<input name="friendsdetails" type="checkbox" value="">No Friends Details
</p>
<p class="form-explanation">If you have no friends, you can tick the box to omit friends</p>
<form name="frmPersonal" class="form-main">
Name:
<input type="text" name="ordPersonalInfo1" value="" onkeyup="Restrict_Chars(this.form.ordPersonalInfo1,30);">
</form>
</div>