2011-08-20 71 views
2

我有一個帳戶管理頁面,可讓用戶更改自己的信息。我想要一個複選框,當他們點擊一個文本框開始編輯它時,他們知道,程序知道什麼會被更新。我想我可以用回發來做到這一點,但我希望儘可能避免多餘的回傳。動態檢查asp net複選框無回發

我認爲這可以用JavaScript來完成......但我不知道如何。

- 編輯 -

@Muhammad阿赫塔爾

我做了一個空白頁面,並試圖在這裏,這是代碼:

<%@ 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個字符,它的工作,但我認爲這是正常的

回答

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; 
    } 

} 
+0

我試過了,現在我覺得我做錯了什麼。我嘗試了應付和粘貼到aspx文件中......沒有骰子。所以我把第一行放在aspx文件和頭文件中的函數中,用''包圍,那也沒用。 –

+0

您可以發佈您在JavaScript中嘗試過的完整代碼嗎? –

+0

剛剛發佈......但我確實注意到Visual Studio給了我一個消息:'驗證(ASP.Net):屬性'onkeypress'不是元素'TextBox'的有效屬性。' –

1

你可以在Javascript中做到這一點,而無需添加內嵌事件您的標記,這使得它看起來更好,更易於維護:

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

這是假設你想要當焦點放在文本框的事件觸發。

+0

我將此添加到頁面的標題,它似乎不工作...我做錯了什麼?我確實將TextBoxID和CheckBoxId更改爲相應的ID。 –

+0

@ Adam8797您是否收到任何Javascript錯誤? – thomasvdb

+0

不是我能說的。如果你能告訴我在哪裏看,我會檢查 –