我有一个复选框,当设置为true时必须禁用其他文本框。 这里的实际问题是复选框只有在我第一次点击两次时才更改值。我第一次点击两次禁用其他文本框。否则它完全正常工作。 在这里我给了我的jquery函数:
function bundlecheckout(val,total)
{
$("#file_check"+val).click(function() {
$('input[id^="file_check"]').attr("checked", false);
//$("#file_check"+val).unbind('click');
$(this).attr('checked', true);
$("#checkout").attr("disabled", !this.checked);
for(i=0;i<=total+1;i++)
{
if(i !=val ){
$("#txtinstruction"+i).attr("disabled", this.checked);
$("#txturl"+i).attr("disabled", this.checked);
}
else{
$("#txtinstruction"+i).removeAttr("disabled");
$("#txturl"+i).removeAttr("disabled");
}
}
}
);}
复选框元素
<input type="checkbox" class="file_check" name="file_upload_check" value="<?php echo $testing_type_id;?>" id="file_check<?php echo $testing_type_id;?>" onclick="bundlecheckout(<?php echo $testing_type_id;?>,<?php echo $total ?>);"/>Apply<br />
答案 0 :(得分:0)
尝试以下代码。我不知道为什么你在点击本身上绑定点击事件。
function bundlecheckout(val,total,e)
{
$('input[id^="file_check"]').attr("checked", false);
//$("#file_check"+val).unbind('click');
$(e).attr('checked', true);
$("#checkout").attr("disabled", !this.checked);
for(i=0;i<=total+1;i++)
{
if(i !=val ){
$("#txtinstruction"+i).attr("disabled", this.checked);
$("#txturl"+i).attr("disabled", this.checked);
}
else{
$("#txtinstruction"+i).removeAttr("disabled");
$("#txturl"+i).removeAttr("disabled");
}
}
}
<input type="checkbox" class="file_check" name="file_upload_check" value="<?php echo $testing_type_id;?>" id="file_check<?php echo $testing_type_id;?>" onclick="bundlecheckout(<?php echo $testing_type_id;?>,<?php echo $total ?>,this);"/>Apply<br />