另一個jQuery noob問題 - 我做錯了什麼?jQuery與ASP.NET WebForms - 禁用文本框
我有ASP.NET呈現一些HTML標記3.5 web表單,看起來像這樣:
<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;" />
- 我有一個檢查「chkRC」我想陷阱,並用它來啓用/禁用其他UI控件
- 我有一些標籤,輸入(type = radio)和輸入(type = text)UI控件。這些都標有「rcPromo」假CSS類
- 我有一個CSS類稱爲「文本框」的普通文本框和「textboxDisabled」的文本框的禁用狀態,在外部引用的CSS文件,工作OK (當用於服務器端代碼,這是)
我想在jQuery中完成的是:當「chkRC」複選框被禁用時,我想禁用所有相關的UI控件。
我的jQuery看起來是這樣的:
$(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);
}
});
});
它工作正常的標籤和單選按鈕 - 但我不能讓它使用文本框的工作 - 他們只是保持不變周圍的一切,沒有什麼更改(它們不會被禁用,並且它們也不會更改其外觀以表明它們已被禁用)。
我不明白這一點 - 我看到幾個(幾比樣品更多)文本框,這是在HTML <input type="text">
,他們確實有class="rcPromo"
和class="textbox"
他們 - 那麼,爲什麼不找的jQuery並更新這些?
任何想法?
馬克
謝謝 - 我會看到它的最佳方法我 – 2009-08-21 11:26:21
感謝您的提示 - 我可能會與特定的字符串去Postfix爲我的文本框顯然使它們脫穎而出,聽起來像它應該工作! – 2009-08-21 20:56:55
僅供參考,玩了更多的獲取渲染文本框中的類屬性包含兩個類名稱您可以覆蓋文本框的CssClass屬性OnPreRenderComplete事件,因爲那時它已經包含了.skin文件中類的名稱,因此:txtDiscountUntil.CssClass = txtDiscountUntil.CssClass +「rcPromo」; – staterium 2009-08-24 07:44:32