2011-02-08 111 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