jQuery z ASP.NET WebForms - wyłączanie pól tekstowych

Kolejne pytanie jQuery noob - co robię źle?

Mam pewne znaczniki HTML renderowane przez formularze WWW ASP.NET 3.5, które wyglądają tak:

<input id="ctl01_cphContent_pnlBasicInfo_chkRC" 
       type="checkbox" name="ctl01$cphContent$pnlBasicInfo$chkRC" />
<label for="ctl01_cphContent_cntPromos_pnlBasicInfo_chkRC">Recurrent Charges</label>

<span id="ctl01_cphContent_cntPromos_pnlBasicInfo_lblPromoValidFor" 
      class="rcPromo">Validity:</span>

<span class="rcPromo">
   <input id="ctl01_cphContent_pnlBasicInfo_rbnDiscountValidFor" 
          type="radio" name="ctl01$cphContent$pnlBasicInfo$discountValidFor" 
          value="rbnDiscountValidFor" checked="checked" />
   <label for="ctl01_cphContent_cntPromos_pnlBasicInfo_rbnDiscountValidFor">valid for</label>
</span>
<span class="rcPromo">
   <input id="ctl01_cphContent_pnlBasicInfo_rbnDiscountValidUntil" 
          type="radio" name="ctl01$cphContent$pnlBasicInfo$discountValidFor" 
          value="rbnDiscountValidUntil" />
   <label for="ctl01_cphContent_cntPromos_pnlBasicInfo_rbnDiscountValidUntil">valid until</label>
</span>

<input name="ctl01$cphContent$pnlBasicInfo$txtDiscountMonths" type="text"
       id="ctl01_cphContent_pnlBasicInfo_txtDiscountMonths" 
       class="textbox" class="rcPromo" originalValue="" style="width:30px;" />
<span id="ctl01_cphContent_cntPromos_pnlBasicInfo_lblMonths" class="rcPromo"></span>

<input name="ctl01$cphContent$pnlBasicInfo$txtDiscountUntil" type="text" 
       id="ctl01_cphContent_pnlBasicInfo_txtDiscountUntil" 
       class="textbox" class="rcPromo" originalValue="" style="width:150px;" />
Mam zaznaczone „chkRC”, które chcę pułapkować i używać do włączania / wyłączania innych kontrolek interfejsu użytkownikaMam kilka etykiet, kontrolki interfejsu użytkownika (typ = radio) i wejściowe (typ = tekst). Wszystkie są oznaczone klasą CSS „rcPromo”Mam klasę CSS o nazwie „textbox” dla normalnego pola tekstowego i „textboxDisabled” dla wyłączonego stanu pola tekstowego, w zewnętrznie odwoływanym pliku CSS, który działa poprawnie (gdy jest używany w kodzie po stronie serwera, czyli)

W jQuery staram się to osiągnąć: gdy pole wyboru „chkRC” jest wyłączone, chcę wyłączyć wszystkie odpowiednie kontrolki interfejsu użytkownika.

Mój jQuery wygląda tak:

    $(document).ready(function() {
        $("#<%= chkRC.ClientID %>").click(function() {
            $('.rcPromo > :label').toggleClass('dimmed');

            if (this.checked) {
                $('.rcPromo').removeAttr('disabled');
                $('.rcPromo .textboxDisabled').addClass('textbox').removeClass('textboxDisabled');
            }
            else {
                $('.rcPromo > :input').removeAttr('checked');
                $('.rcPromo .textbox').addClass('textboxDisabled').removeClass('textbox');
                $('.rcPromo').attr('disabled', true);
            }
        });
    });

Działa dobrze dla etykiet i radiobuttonów - ale po prostu nie mogę zmusić go do pracy z polami tekstowymi - po prostu pozostają takie same dookoła, nic się nie zmienia (nie zostają wyłączone i nie zmieniają swojego wyglądu na wskazują również, że są wyłączone).

Nie rozumiem tego - widzę kilka (kilka więcej niż w próbce) pól tekstowych, które są<input type="text"> w HTML i mająclass="rcPromo" iclass="textbox" na nich - więc dlaczego jQuery nie znajduje ich i nie aktualizuje?

Jakieś pomysły?

Marc

questionAnswers(2)

yourAnswerToTheQuestion