我正在尝试使用 jquery 来检测是否检查了同一组中的另一个文本框。下面的代码显示了我在选中高级框时如何尝试检索组名,并使用它来查看是否选中了随附的基本框。问题是“basicTrue”总是被分配“未定义”,无论基本复选框的条件如何。
<div id="boxes">
<input style="text-align:center;" type="checkbox" name="group1" value="Basic">
<input style="text-align:center;" type="checkbox" name="group1" value="Advanced">
<input style="text-align:center;" type="checkbox" name="group2" value="Basic">
<input style="text-align:center;" type="checkbox" name="group2" value="Advanced">
</div>
$("#boxes").contents().find(":checkbox").bind('change', function(){
val = this.checked;
var $obj = $(this);
if($obj.val()=="Advanced"){
var group = $obj.attr("name");
var basicTrue = $('input[name=group][value="Basic"]').prop("checked");
if(basicTrue)
{
//Do stuff
}
else
{
$obj.attr('checked', false);
}
}
此代码是我用来证明以这种方式格式化的代码有效的概念证明,它确实返回“group1”中“基本”复选框的状态。
var basicTrue = $('input[name="group1"][value="Basic"]').prop("checked");
我知道变量“group”被赋予了正确的名称:例如 group1。有没有理由在代码中使用这个变量不起作用?