句柄复选框与类选择器

问题描述:

我有一个<asp:Checkbox />,我想看看它是否通过jQuery检查。问题是,它总是返回false。它是否与我通过类选择元素有关?句柄复选框与类选择器

JS的

$(document).ready(initialize); 

var map; 

function initialize() { 

    var x; 
    x = $(".chkSetMap"); 
    x.click(setMap); 
} 

function setMap() { 

    if ($('.chkSetMap').attr('checked') == true) { 
     $(".comboMap").attr("disabled", true); 

    } 
} 

复选框

<asp:CheckBox ID="chkSetMap" CssClass="chkSetMap" runat="server" /> 

呈现的复选框

<span class="chkSetMap"><input id="ctl00_ContentPlaceHolder1_chkSetMap" type="checkbox" name="ctl00$ContentPlaceHolder1$chkSetMap" /></span> 

尝试使用.is()方法和:checked速记选择

$(document).ready(initialize); 

var $chkSetMap; 

function initialize() { 
    $chkSetMap = $(".chkSetMap input:checkbox").click(setMap); 
} 

function setMap() { 
    $(".comboMap").attr("disabled", $chkSetMap.is(':checked')); 
} 

工作示例:http://jsfiddle.net/hunter/5XA7D/已更新!


由于ASP.Net服务器控件是真棒它包装一下你的复选框,在spanspanchkSetMap类,而不是复选框。

+0

@Chad它是在DOM,这确实工作这样。它不是将属性设置为字符串,而是将其设置为布尔型 – hunter 2011-05-24 19:44:05

+0

一个简单的“你误会了”就足够了。 – Chad 2011-05-24 19:47:47

+0

@hunter嗨,我已经与方法是 – Jorge 2011-05-24 19:47:49

您可以简单地拥有一个匿名函数。 (#content是无论div是你的网页上的所有输入你正在寻找的div)。如果选中任何一个chkSetMap复选框,此功能将禁用所有.comboMap类的下拉菜单。 如果你只有1个复选框,并选择一个 - 使用ID,而不是

$(document).ready(function() { 

$(function() { 
    $('.chkSetMap').click(function() { 
     if ($(this).is(':checked')) { 
      $("#content").find('.comboMap').attr("disabled", true); 
     }else{ 
     $("#content").find('.comboMap').attr("disabled", false); 
     } 
    }); 

}); 
}); 

ASP.NET放CssClass<span>(这是任何Text会去)。所以,你的选择器拿起<span>

尝试使用child selector去的复选框:​​