Javascript 在不回发的情况下动态选中asp net复选框

Javascript 在不回发的情况下动态选中asp net复选框,javascript,asp.net,Javascript,Asp.net,我有一个帐户管理页面,可以让用户更改自己的信息。当他们点击文本框开始编辑它时,我想勾选一个复选框,这样他们就知道,程序也知道将更新什么。我想我可以通过回发来做到这一点,但如果可能的话,我想避免额外的回发 我想这可以用javascript来完成。。。但是我不知道怎么做 --编辑-- @穆罕默德·阿赫塔 我做了一个空白页并尝试了以下代码: <%@ Page Title="" Language="C#" MasterPageFile="~/BlueBlack.Master" AutoEventW

我有一个帐户管理页面,可以让用户更改自己的信息。当他们点击文本框开始编辑它时,我想勾选一个复选框,这样他们就知道,程序也知道将更新什么。我想我可以通过回发来做到这一点,但如果可能的话,我想避免额外的回发

我想这可以用javascript来完成。。。但是我不知道怎么做

--编辑--

@穆罕默德·阿赫塔

我做了一个空白页并尝试了以下代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/BlueBlack.Master" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="LinkFactory.WebForm2" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Head" runat="server">
<script type="text/javascript">
function update()
{
  if(document.getElementById('<%=check.ClientID %>').value != '')
  {
    document.getElementById('<%=check.ClientID %>').checked = true;
  }
  else
  {
    document.getElementById('<%=check.ClientID %>').checked = false;
  }

}
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:CheckBox ID="check" runat="server" />
    <asp:TextBox ID="TextBox1" runat="server" onkeypress="update();"></asp:TextBox>
</asp:Content>

函数更新()
{
if(document.getElementById(“”).value!=“”)
{
document.getElementById(“”).checked=true;
}
其他的
{
document.getElementById(“”).checked=false;
}
}
--编辑2--

关于答案:


我在我的页面标题中使用了他的脚本。出于某种原因,我需要键入2个字符才能使其工作,但我认为这没关系

您可以使用
onkeypress
事件并调用JS函数

<asp:TextBox ID="TextBox1" runat="server" onkeypress="update();"></asp:TextBox>

function update()
{
  if(document.getElementById('<%=TextBoxID.ClientID %>').value != '')
  {
    document.getElementById('<%=CheckBoxID.ClientID %>').checked = true;
  }
  else
  {
    document.getElementById('<%=CheckBoxID.ClientID %>').checked = false;
  }

}

函数更新()
{
if(document.getElementById(“”).value!=“”)
{
document.getElementById(“”).checked=true;
}
其他的
{
document.getElementById(“”).checked=false;
}
}

您可以在Javascript中执行此操作,而无需将内联事件添加到标记中,从而使标记看起来更好,更易于维护:

document.getElementById('<%=TextBoxID.ClientID %>').focus = function() {
    document.getElementByID('<%=CheckBoxID.ClientID %>').checked = true;
}
document.getElementById(“”).focus=function(){
document.getElementByID(“”).checked=true;
}

这假设您希望在将焦点放在文本框上时触发事件。

我将其添加到页面的标题中,但它似乎不起作用。。。我做错什么了吗?我确实把TextBoxID和CheckBoxId改成了它们对应的ID。我不知道。如果你能告诉我去哪里看,我会检查我试过这个,现在我觉得我做错了什么。我试着复制并粘贴到aspx文件中。。。没有骰子。所以我把第一行放在aspx文件中,函数放在标题中,周围是
,这也不起作用。你可以发布你在JavaScript中尝试过的完整代码吗。刚刚发布。。。但我注意到visual studio给了我一条消息:
验证(ASP.Net):属性“onkeypress”不是元素“TextBox”的有效属性。
您需要将脚本放在Content2之后。你的剧本位置不对。你可以在页面中检查这个脚本,没有母版页,然后你可以用母版页检查它。我觉得自己有点像个白痴。我想不出来。我把函数放在内容结束后,得到一个错误。我试过有标签和没有标签。