1

次のようにレンダリングされるrblDependantsという名前のasp:RadioButtonListとパネルpnlDependantsがあり、ラジオボタンの選択が「いいえ」の場合は非表示にし、「はい」の場合は表示する必要があります。フォーラムからいくつかのスニペットを試しましたが、どれもうまく機能していないようです。誰かが私を助けてくれますか....!

  <table id="ctl00_ContentPlaceHolder1_ctl02_rblDependants"  border="0" style="border-width:0px;">
        <tr>
            <td><input id="ctl00_ContentPlaceHolder1_ctl02_rblDependants_0" type="radio" name="ctl00$ContentPlaceHolder1$ctl02$rblDependants" value="Yes" /><label for="ctl00_ContentPlaceHolder1_ctl02_rblDependants_0">Yes</label></td>
        </tr><tr>
            <td><input id="ctl00_ContentPlaceHolder1_ctl02_rblDependants_1" type="radio" name="ctl00$ContentPlaceHolder1$ctl02$rblDependants" value="No" checked="checked" /><label for="ctl00_ContentPlaceHolder1_ctl02_rblDependants_1">No</label></td>
        </tr>
</table>

<div id="ctl00_ContentPlaceHolder1_ctl02_pnlDependants">

                    <div class="QuestionWrapper">

                        <div class="Question">
                            <label for="">No. of Dependants</label>
                        </div>
                        <div class="Answer">
                            <input name="ctl00$ContentPlaceHolder1$ctl02$txtNoOfDependants" type="text" maxlength="2" id="ctl00_ContentPlaceHolder1_ctl02_txtNoOfDependants" />
                        </div>
                        <div class="ClearFloat"></div>
                    </div>
4

1 に答える 1

3

このようなものが動作するはずです:

​$("table[id$=_rblDependants] :radio").change(function() {
    $(this).closest('table').next().toggle(this.checked && this.value == 'Yes');
})​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​.change()​;​

<div id="X_pnlDependants">これは、相対的に検出されるため、繰り返されるコントロールの数に関係なく機能します。で終わる<table>who の IDを取得し、その中のボタンをすべて取得して、そのイベントにバインドするだけです。次に、それらのいずれかが変更され、結果がであり、 であったことを確認します。その場合はパネルを表示し、そうでない場合は非表示にします。 _rblDependants:radio.change()value="Yes".checked.toggle(bool)

.closest().next()<table>、次の要素である に移動します。これ<div>は、非表示/表示したいものであるためです。on the end はハンドラーを最初にトリガーするための.change()ものであるため、最初に「いいえ」がチェックされている場合は、<div>on load を非表示にします。

ここで試してみることができます

于 2010-08-10T11:42:13.060 に答える