- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码如下,复选框始终为 FALSE。但在页面上却有所不同。它不会被选中或取消选中。
<script type="text/javascript">
$('.cbOzelHastaAdi').unbind('click');
$('.cbOzelHastaAdi').click( function() {
var parentDiv = $(this).parent().get(0);
var cbs = $(parentDiv).find('table input:checkbox');
if($(this).attr("checked") === "true") {
cbs.each(function() { $(this).attr('checked', false); });
}
else{
cbs.each(function() { $(this).attr('checked', true); });
}
})
</script>
最佳答案
问题之一是您有 checked
围绕顶部复选框和标签的跨度上的属性,并将事件处理程序绑定(bind)到该跨度,因此 checked
永远保持checked
在跨度上。
我已将事件处理程序移至复选框,并对代码进行了一些整理。虽然我不认为在 HTML 元素上构造自己的属性(即 span 元素上的检查属性)存在问题(我认为 XHTML 严格验证失败),但我不知道这样做是否被认为是好的做法。
我可以看到您正在使用 ASP.NET,基于 ID 修改 - 您可以使用服务器端 <%= myControl.ClientID %>
获取要在发送到客户端的 HTML 中呈现的损坏的 id。
$(function() {
$('#rptOzel_ctl00_rptOzelHastalar_ctl00_cbOzelKurumHastasi').unbind('click');
$('#rptOzel_ctl00_rptOzelHastalar_ctl00_cbOzelKurumHastasi').click( function() {
var cbs = $('table input:checkbox');
if($(this).is(':checked')){
cbs.each(function() { $(this).attr('checked', true); });
}
else{
cbs.each(function() { $(this).attr('checked', false); });
}
});
});
编辑:
根据您的评论,您有两种解决 clientid 的选项。如果你在 aspx 页面中编写 jQuery,那么你可以简单地使用
$('#<%= cbOzelKurumHastasi.ClientID %>')
代替
$('#rptOzel_ctl00_rptOzelHastalar_ctl00_cbOzelKurumHastasi')
如果您的 jQuery 位于外部脚本文件中,那么您可以将其放入您的 aspx 页面中
<script type="text/javascript">
var cbOzelKurumHastasi = '#<%= cbOzelKurumHastasi.ClientID %>';
</script>
然后在外部脚本文件中使用该变量
$(function() {
$(cbOzelKurumHastasi).unbind('click');
$(cbOzelKurumHastasi).click( function() { ...
有关其他选项,请查看此问题和答案 - How to stop ASP.NET from changing ids in order to use jQuery
关于jquery - 复选框和 JQUERY : "is checked" always FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865513/
我是一名优秀的程序员,十分优秀!