- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在通过 JQuery 检查复选框时遇到问题 - 我已经这样做了:
if(element[1]==3)
alert('#'+element[0]+'_1');//shows #chk_1
$('#'+element[0]+'_1').attr('checked', true);
$('#'+element[0]+'_2').attr('checked', true);
$('#'+element[0]+'_3').attr('checked', true);
}
我知道它到了那个点,因为我可以看到带有正确变量名称的警报窗口。我还包括了 JQuery,我的 Firebug 没有提示任何错误,它只是没有发生任何事情。
我还有一些在用户点击时激活的其他功能:
onclick="checker($(this).attr('id'));"
这实质上是检查用户是否被允许勾选复选框,但如果我使用上述方法,这不应该被激活,对吗?另外,我以保留这些规则并允许用户勾选复选框的方式完成了自动勾选。
我能够单击复选框,并且这些规则检查在检查器功能中正确完成。
帮助!坦率地说,我不知道哪里出了问题。
我很感激你的帮助。
根据 Pekka 的建议,我发现 JQuery 函数似乎没有工作,例如:
$('#'+element[0]+'_1').hide();
什么也没做。所以这意味着元素的ID有问题?但是该元素确实存在并且名称正确!
我已经给了复选框一个值并尝试了这个:
alert($('#'+element[0]+'_1').val());
我得到“undefined”返回!为什么?
测试是否被选中:
$('#'+element[0]+'_1').attr('checked', true);
if ($('#'+element[0]+'_1'+':checked').val() !== null) {
alert('#'+element[0]+'_1');
}
这显示了警告框。所以它似乎已被选中,但我看不到它?
不要像我一样菜鸟并用以下代码包装 JQuery 代码:$(document).ready(function() {
我设法浪费了每个人的时间,但没有这样做,我认为从现在开始,这段代码将成为我的标准。
感谢大家一直以来的帮助! :) 我必须把提到文档加载的人 [lillq] 交给他!
最佳答案
一个想法是:
如果您的 html 中有多个 chk_1, chk_2, chk_3
id,则 $('#'+element[0]+'_2').attr('checked ', true);
只会影响文档中的第一个。
我运行了您提供的代码:
html
...
<body>
<input type="checkbox" id="el1" onclick="checker($(this).attr('id'));" />Text<br />
<input type="checkbox" id="el2" onclick="checker($(this).attr('id'));" />Text<br />
<input type="checkbox" id="el3" onclick="checker($(this).attr('id'));" />Text<br />
</body>
</html>
<script type="text/javascript">
init();
</script>
JavaScript
function init () {
$('#el1').attr('checked', true);
$('#el2').attr('checked', true);
$('#el3').attr('checked', true);
}
function checker(id)
{
alert(id);
}
此处的 init 函数会在文档加载后检查所有复选框。您是否还有其他信息可以帮助我们。
我喜欢将这样的示例简化为最简单的失败代码。
关于javascript - 无法使用 JQuery 勾选复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302887/
我是一名优秀的程序员,十分优秀!