2011-09-29 132 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