我有一个<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>
答案 0 :(得分:1)
尝试使用.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
类,而不是复选框。
答案 1 :(得分:1)
ASP.NET将CssClass
放在<span>
上(这是任何Text
所在的位置)。因此,您的选择器会选择<span>
。
尝试使用child selector转到复选框:$('.chkSetMap > input:checkbox')
答案 2 :(得分:0)
您可以简单地使用匿名功能。 (#content is wj div是你网页上的div,它包含你正在寻找的所有输入)。如果选中chkSetMap的任何复选框,则此函数将禁用.comboMap类的所有下拉列表。 如果您只有一个复选框和一个选择 - 请改为使用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);
}
});
});
});