javascript-如何在向文本框添加值时自动选中复选框
我对ASP.NET中的javascript略知一二。我把文本框放在复选框控件旁边。所以,当您键入文本框时,复选框应自动被选中。当您删除文本框中的字符串时,复选框应自动取消选中。如何使用javascript编写代码 我试图在这里编写的代码不起作用:javascript-如何在向文本框添加值时自动选中复选框,javascript,asp.net,checkbox,textbox,Javascript,Asp.net,Checkbox,Textbox,我对ASP.NET中的javascript略知一二。我把文本框放在复选框控件旁边。所以,当您键入文本框时,复选框应自动被选中。当您删除文本框中的字符串时,复选框应自动取消选中。如何使用javascript编写代码 我试图在这里编写的代码不起作用: <script type="text/javascript" language="javascript"> function TextboxFunction() { if (document.getElementBy
<script type="text/javascript" language="javascript">
function TextboxFunction() {
if (document.getElementById("txtQuestion").textContent != null)
document.getElementById("cbxYes").checked = true;
if (document.getElementById("txtQuestion").textContent == null)
document.getElementById("cbxYes").checked = false;
}
</script>
函数TextboxFunction(){
if(document.getElementById(“txtQuestion”).textContent!=null)
document.getElementById(“cbxYes”).checked=true;
if(document.getElementById(“txtQuestion”).textContent==null)
document.getElementById(“cbxYes”).checked=false;
}
Asp.net(列表视图)
将
.textContent
更改为.Value
,并将Null
更改为”
函数TextboxFunction(){
if(document.getElementById(“txtQuestion”).Value!=“”)
document.getElementById(“cbxYes”).checked=true;
if(document.getElementById(“txtQuestion”).Value==“”)
document.getElementById(“cbxYes”).checked=false;
}
我相信只有在输入失去焦点后才会触发onChange
事件。尝试捕获txtQuestion
上的onKeyPress
事件。在事件处理程序中,选中document.getElementById(“txtQuestion”).value.length>=0
,并根据需要选中或取消选中复选框
编辑:在这种情况下,
onKeyUp
事件将比onKeyPress
更有效。更改您正在使用的属性。尝试.value而不是.textContent
但是,还有:我看到您正在使用网格。我估计您可能有多个id为“cbxYes”的复选框
我建议您转到并检查方法$(this).before()和.closest(),以找到需要更改的复选框。您应该使用
document.getElementById("txtQuestion").value
而不是
document.getElementById("txtQuestion").textContent
当您使用ItemTemplate时,我需要一个放在中继器中或类似的东西。在这种情况下,您放在控件中的ID将与它在HTML中呈现的ID不同,因为您将拥有多个具有相同ID的控件。Asp.Net将处理该ID 您可以这样做:
<ItemTemplate>
<tr class="item" runat="server">
<td><asp:TextBox ID="txtQuestion" OnChange="TextboxFunction(this);" Width="200px" runat="server"></asp:TextBox></td>
<td><asp:CheckBox ID="cbxYes" runat="server" /></td>
</tr>
</ItemTemplate>
您将文本框作为参数传递,因此不必通过id获取文本框。然后查找下一个TD中的复选框并应用逻辑。对于这类事情,JQuery比纯javascript更容易使用。此外,如果检查,您可以跳过最后一个
。只需将if(document.getElementById(“txtQuestion”).Value==“”)更改为else
。我只是粗略猜测一下,这会导致错误,类似于“HtmleElement没有属性值”,因为它区分大小写。不客气,Brett。喜欢雷神的视频顺便说一句,把我搞坏了!他们删除了我在另一个问题中的一些评论,关于我所说的苹果IIe的事情,我不知道你是否看到了@BrettFromLA@Fred-我确实看到了!我也是一个“老家伙”——特别是自从苹果公司出现在苹果公司之前,我的电脑连小写字母都没有。你是苹果公司的吗[e用户做得很好。XDLOL,好吧,Brett,我的信息告诉我的是,我们在80年代中期使用了苹果IIe,但不是用于编程,而是用于图形艺术行业。然后我写了“是的,我那么老了,lol”所以我们差不多是同一年龄段的人。当时还说9英寸的引导盘要90美元。一个人不想把一个搞砸,当时的老板碰巧用手指碰了一下暴露的区域(一次)。哦,好吧,他上了子弹,所以没什么大不了的;他买得起;-)@BrettFromLA-我们有被认为是(最先进的)“最先进的”技术哈哈!这实际上是价值。这是案例sensitive@ivowiblo::我的坏..更新了。谢谢:)不适合我。你能给我完整的代码让我理解吗。thx:)
document.getElementById("txtQuestion").textContent
<ItemTemplate>
<tr class="item" runat="server">
<td><asp:TextBox ID="txtQuestion" OnChange="TextboxFunction(this);" Width="200px" runat="server"></asp:TextBox></td>
<td><asp:CheckBox ID="cbxYes" runat="server" /></td>
</tr>
</ItemTemplate>
function TextboxFunction(textbox) {
var textBoxTd = textbox.parentNode;
var checkboxTd = textBoxTD.nextSibling;
var chx = checkboxTd.childNodes[0];
chx.checked = textbox.value == "";
}