句柄复选框与类选择器
问题描述:
我有一个<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服务器控件是真棒它包装一下你的复选框,在span
。 span
有chkSetMap
类,而不是复选框。
答
您可以简单地拥有一个匿名函数。 (#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);
}
});
});
});
@Chad它是在DOM,这确实工作这样。它不是将属性设置为字符串,而是将其设置为布尔型 – hunter 2011-05-24 19:44:05
一个简单的“你误会了”就足够了。 – Chad 2011-05-24 19:47:47
@hunter嗨,我已经与方法是 – Jorge 2011-05-24 19:47:49