我有一个CheckBoxList,它使用表格中的数据显示复选框列表。
虽然预计此表中的记录会发生变化,但预计最后一项的文本值为“其他”并具有预期值。
如果用户选择“其他”,我希望能够启用相关文本框,并在其中输入指定的“其他”描述。我希望能够使用Javascript或jQuery在客户端上执行此操作。
由于动态创建了ID个别列表项,因此可以避免硬编码,例如:
chkOther = document.getElementbyID(“checkListItem12_chkOccupationOther”)
我不知道jQuery,但我认为该库可能提供了一种使用匹配ID掩码获得控制的好方法,例如。
建议?
答案 0 :(得分:1)
如果您可以保证“其他”复选框始终位于最后,则可以使用last selector。 使用复选框列表的ID:
$(document).ready(function() {
$("#<%=YourCheckBoxList.ClientID%> input:checkbox:last").click(function(){
if(this.checked) {
//Enable Text Box Here
}else{
//Disable here
}
});
});
编辑:已根据RobG的评论更新,以删除不必要的“this”转换为jQuery对象。
答案 1 :(得分:1)
你可以很容易地用普通的JS做到这一点。我猜你的复选框是一个表单,所以你先从获取表单开始,然后在最后一个复选框中添加一个监听器:
function addClick() {
var form = document.forms['f0'];
var input, inputs = form.getElementsByTagName('input');
var i = inputs.length;
while (i--) {
input = inputs[i];
if (input.type == 'checkbox') {
input.onclick = function() {
if (this.checked) {
// Do stuff...
alert('checked!');
} else {
// Put stuff in here if unchecked, probably
// want to hide whatever is shown when above
// is clicked
}
}
// Going backward, the first checkbox found is the
// last one so stop after first one found
return;
}
input = null;
}
}
然后使用DOM ready函数或window.onload将函数添加为底部脚本。