2011-09-29 216 views
5

當前在我的應用程序中,我有一個按鈕和一個文本框。用戶在文本框中鍵入內容,然後按下按鈕。我想要的是:啓用禁用按鈕asp.net - 使用javascript

當頁面首次加載時,搜索按鈕應該保持禁用狀態。我可以通過在代碼隱藏文件中將其設置爲禁用來實現。

現在我想讓它在用戶輸入最多2個字符時保持禁用狀態。當用戶輸入第三個字符時,該按鈕應該自動啓用。

重要的是,它必須完成沒有ASP.NET AJAX,因爲這個網站將從舊手機運行。所以只支持非常基本的javascript或jquery。

任何幫助將不勝感激。

感謝

Varun的

回答

4

爲了在asp.net中使用document.getElementById而不必使用全名,你應該讓asp.net提供它。相反的: document.getElementById("ctl00_ctl00_phContent_phPageContent_btnSearch")

嘗試:

document.getElementById('<%= btnName.ClientID %>')

哪裏btnNameasp:ButtonId<%=代碼將生成完全限定的實際按鈕ID,因此您不必擔心硬編碼ID會發生變化。

+0

在我的情況下,表達式是怎麼來的?我從來沒有得到實際的價值... – Lorgarn

3

我得到這個與HTML文本框中的工作,我不認爲你可以用asp.net文本框做:

<head> 
    <script type="text/javascript"> 
     function TextChange() { 
      var t = document.getElementById("Text1"); 
      var b = document.getElementById("Button1"); 
      if (t.value.length > 2) { 
       b.disabled = false; 
      } 
      else { 
       b.disabled = true; 
      } 


     } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="Text1" type="text" onkeyup="TextChange();" /> 
     <asp:Button ID="Button1" runat="server" Text="Button" Enabled="False" /> 
    </div> 
    </form> 
</body> 
+0

嗨,感謝您的幫助,但我得到它的工作使用純JavaScript的正常形式。但是因爲我的文本框和按鈕都在asp.net內的contentplaceholder裏面,所以我無法獲得它在運行時使用它的按鈕的ID。我被迫像這樣寫:document.getElementById(「ctl00_ctl00_phContent_phPageContent_btnSearch」)。disable d = false;而不是document.getElementById(「btnSearch」)。disabled = false; – VVV

1

如果你正在使用jQuery,使用

$(<selector>).val().length 

要獲得大小,那麼你可以設置按鈕的禁用屬性

$(<button selector>).attr('disabled',false). 
+1

嗨,感謝您的幫助,但我得到它的工作使用純JavaScript的正常形式。但是因爲我的文本框和按鈕都在asp.net內的contentplaceholder裏面,所以我無法獲得它在運行時使用它的按鈕的ID。我被迫像這樣寫:document.getElementById(「ctl00_ctl00_phContent_phPageContent_btnSearch」)。disabled = false;而不是document.getElementById(「btnSearch」)。disabled = false; – VVV

+2

哦,我明白現在真正的問題。您可以通過使用以下代碼在代碼中插入一些代碼來訪問控件的ID:''%= btnSearch.ClientID%>''''''''''''''所以,你可以用jQuery來做到這一點:'$(「<%= btnSearch.ClientID%>」)'得到你的按鈕的jQuery對象,或者你可以用純j:'document.getElementById(「<% = btnSearch.ClientID%>「)' – kand