因此,如果选中了复选框,我会动态地将文本和文本框添加到页面中。但是,动态部分是后面的代码创建一个CheckBoxList并将Code表中的文本附加到每个复选框。因此,我正在寻找包含“chkCheckBox”的ID的任何复选框。从那里,我可以检查复选框旁边是否是“其他”,如果是,请在下面的最后一行插入HTML行。
$("input:checkbox[id*=chkSomeCheckBox]").click(function() {
if ($(this).next().html() == "Other") {
$("<span> : </span><input type='textbox'>").insertAfter($(this).next());
}
});
问题:我遇到的问题显然是如果他们取消选中该框,它会在第一个文本框旁边添加另一个文本框,然后继续。
帮助:我在确定如何检查他们是否正在勾选复选框时遇到问题,并且只有放置HTML才会为真。其次,如果他们取消选中符合(==“其他”条件的复选框,则删除我动态放置的文本框。
我认为它将使用JQuery“remove()”事件,但我不确定如何将(this)与:checked选择器绑定。
有什么建议吗?
答案 0 :(得分:1)
$("input:checkbox[id*=chkSomeCheckBox]").click(function() {
if ($(this).next().html() == "Other" && $(this).is(':checked')) {
$("<span> : </span><input type='textbox'>").insertAfter($(this).next());
}
else if($(this).next().html() == "Other"){
$(this).next().empty();
}
});
答案 1 :(得分:0)
$("input:checkbox[id*=chkSomeCheckBox]").click(function() {
if ($(this).next().html() == "Other" && $(this).is(':checked')) {
$("<span> : </span><input type='textbox'>").insertAfter($(this).next());
}
else if($(this).next().html() == "Other"){
// remove html
}
});
那说试着考虑一下你能做到的更好的方法......这似乎有点像“围绕房子”。 :p我确定必须有更简单的方法。