2011-02-08 108 views
0

我有一些ASP.Net代碼,定義了服務器端的複選框,這樣的:在客戶端事件處理程序無法獲得checkbox.checked財產

<asp:CheckBox ID="_chkWindAndHail" runat="server" Text="Wind/Hail Deductible" TextAlign="Right" Checked="true" onClick="onControlChanged()" /> 

然後,我有一些JavaScript,看起來像這樣:

var chkWind = $("#<%= _chkWindAndHail.ClientID %>"); 
var hdnWind = $("#<%= _hdnWindAndHailPremium.ClientID %>"); 
var txtWind = $("#<%= _txtWindAndHailPremium.ClientID %>"); 
if (chkWind.checked) 
    txtWind.val(hdnWind.val); 
else 
    txtWind.val(0); 

當我嘗試一下文本框的「選中」屬性的值,螢火蟲說複選框對象是好的,但「選中」屬性來了「不確定」,因此在代碼中它從來沒有設置一個合適的價值。

有人能向我解釋什麼赫克在我做錯了嗎?我是JQuery的新手,所以這可能是非常基本的東西。

回答

1

最快的方法就是讓checked屬性,但你需要從存儲在jQuery對象的DOM元素本身做到這一點。

chkWind[0].checked; 

這檢索索引0的DOM元素,併爲您的checked財產。你試圖從jQuery對象而不是元素中獲取它。

+0

這工作;有趣。爲什麼我需要像數組一樣引用它?我只是檢索一個控件的單個實例。 – 2011-02-08 22:12:15

0

嘗試chkWind.attr( '檢查')來訪問屬性。值返回爲true/false。

3

嘗試

.is(':checked'); 

.attr('checked'); 

雙方應帶回你正在尋找的結果。

+0

這些都工作。我需要對這些功能做更多的閱讀。奇怪的是,使用此語法,我沒有引用「節點0」我chkWind做的方式[0] .checked – 2011-02-08 23:13:51