动态检查asp net复选框,无需回发

时间:2011-08-20 16:43:25

标签: javascript asp.net

我有一个帐户管理页面,可让用户更改自己的信息。我想在点击文本框开始编辑它时检查一个复选框,以便他们知道,并且程序知道将要更新的内容。我想我可以用回发来做到这一点,但如果可能的话我想避免额外的回发。

我认为这可以用javascript完成......但我不知道如何。

- 编辑 -

@Muhammad Akhtar

我做了一个空白页,试过这里是代码:

<%@ 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>

- 编辑2 -

关于答案:

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

2 个答案:

答案 0 :(得分:1)

您可以使用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;
  }

}

答案 1 :(得分:1)

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

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

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