使用 javascript 和 asp.net 启用和禁用按钮

Posted

技术标签:

【中文标题】使用 javascript 和 asp.net 启用和禁用按钮【英文标题】:Enable and disable button using javascript and asp.net 【发布时间】:2011-09-22 12:28:07 【问题描述】:

我正在检查用户是否存在于数据库中(如果存在)我将消息显示为“现有用户”,然后我需要禁用注册按钮,如果没有我需要启用它。

我无法启用和禁用注册按钮。

谁能帮我解决这个问题?

这是我的代码:

 <script type="text/javascript">
     $(function () 
         $("#<% =btnavailable.ClientID %>").click(function () 
             if ($("#<% =txtUserName.ClientID %>").val() == "") 
                 $("#<% =txtUserName.ClientID %>").removeClass().addClass('notavailablecss').text('Required field cannot be blank').fadeIn("slow");

              else 
                 $("#<% =txtUserName.ClientID %>").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
                 $.post("LoginHandler.ashx",  uname: $("#<% =txtUserName.ClientID %>").val() , function (result) 
                     if (result == "1") 
                         $("#<% =txtUserName.ClientID %>").addClass('notavailablecss').fadeTo(900, 1);
                       document.getElementById(#<% =btnSignUp.ClientID %>').enabled = false;
                     
                     else if (result == "0") 
                         $("#<% =txtUserName.ClientID %>").addClass('availablecss').fadeTo(900, 1);
                        document.getElementById('#<% =btnSignUp.ClientID %>').enabled = true;
                     
                     else 
                         $("#<% =txtUserName.ClientID %>").addClass('notavailablecss').fadeTo(900, 1);
                     
                 );
             
         );

         $("#<% =btnavailable.ClientID %>").ajaxError(function (event, request, settings, error) 
             alert("Error requesting page " + settings.url + " Error:" + error);
         );
     );
</script>

【问题讨论】:

你的问题是?现在有人可以帮助你吗? 我的问题是无法禁用和启用注册按钮。如果用户名存在,我需要禁用它,如果没有,我需要启用它。 【参考方案1】:

不幸的是,您的问题与enableddisabled 之间的差异一样小

.enabled = true;

应该是:

.disabled = false;

【讨论】:

是的,如上所示,我已经这样做了,但是当用户可用并且我单击“注册”按钮时,它会刷新页面。 我看到你正在使用POST,所以我假设你只是在按钮的事件处理程序中缺少event.preventDefault() 将您的提交点击处理程序添加到您的原始帖子中。【参考方案2】:

你可以玩这个:

$('#ButtonId').prop("disabled", true); ->> disabled
$('#ButtonId').prop("disabled", false); ->> Enabled

【讨论】:

尽管我也很喜欢 jquery,但我不认为 OP 正在使用它。 不好意思,看标签的习惯一目了然;)【参考方案3】:

试试这个...

document.getElementById('<%= button.ClientID %>').disabled = true;

document.getElementById('<%= button.ClientID %>').disabled = false;

【讨论】:

是的,我已经尝试了上面代码中提到的同样的事情,但没有工作。 我尝试将“var”设置为此值,然后设置“禁用”,但没有任何反应。当我使用上面的代码时,一切正常。我相信这与“var”变量不被理解为按钮有关,上面的代码仍然是这样理解的。【参考方案4】:

JavaScript:

 function Enable() 
      $("#btnSave").attr('disabled', false);                
    
 function Disable() 
       $("#btnSave").attr('disabled', true);
      

ASPX 页面:

 <asp:Button runat="server" ID="btnSave" Text="Save" UseSubmitBehavior="false" OnClientClick="if(Page_ClientValidate('Validation'))javascript:Disable();" ValidationGroup="Validation"/>

代码隐藏:

ScriptManager.RegisterStartupScript(Me, Me.GetType(), "Disable", "javascript:Disable();", True)

【讨论】:

【参考方案5】:

您可以将按钮的可见性设置为 false visibility="false"

【讨论】:

是的,我也这样做了,但是当用户单击显示可用性时,如果用户存在于数据库中,那么我需要启用未发生的注册按钮 为此,您必须在某些条件下使用一些 if else 语句,并在 c# 代码 buttoneName.visibility=true 或 false 中使用【参考方案6】:

.disabled 确实有效,您是否使用断点来确保您的代码甚至可以到达?您的条件 if / else 可能不会返回您的预期值。

【讨论】:

【参考方案7】:

我这样做:

禁用:

    var myButton = document.getElementById('<%= this.myButton.ClientID %>');
    $(myButton).attr('disabled', 'disabled');  

启用:

    $(myButton).removeAttr('disabled');

【讨论】:

【参考方案8】:

要使用 JavaScript 启用和禁用按钮,应该这样做-

例子:

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="a(); return false;"/>
<asp:Button ID="Button2" runat="server" Text="Button" OnClientClick="b(); return false;" />

<script type="text/javascript">
   function a() 
       alert('1');
       document.getElementById('<%=Button1.ClientID %>').disabled = true;
       document.getElementById('<%=Button2.ClientID %>').disabled = false;
      
   function b() 
       alert('2');
       document.getElementById('<%=Button2.ClientID %>').disabled = true;
       document.getElementById('<%=Button1.ClientID %>').disabled = false;
      
 </script>

注意:虽然其他帖子有类似的代码,但由于页面上的重新加载而失败。因此,为避免重新加载,应添加 return false,如 OnClientClick="a(); return false;"

【讨论】:

【参考方案9】:

这段 JavaScript 代码应该可以工作。

document.getElementById("<%=btnSignUp.ClientID%>").disabled = true; //To disable the button

document.getElementById("<%=btnSignUp.ClientID%>").disabled = false;//To enable the button

你的代码应该是这样的

<script type="text/javascript">
     $(function () 
         $("#<% =btnavailable.ClientID %>").click(function () 
             if ($("#<% =txtUserName.ClientID %>").val() == "") 
                 $("#<% =txtUserName.ClientID %>").removeClass().addClass('notavailablecss').text('Required field cannot be blank').fadeIn("slow");

              else 
                 $("#<% =txtUserName.ClientID %>").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
                 $.post("LoginHandler.ashx",  uname: $("#<% =txtUserName.ClientID %>").val() , function (result) 
                     if (result == "1") 
                         $("#<% =txtUserName.ClientID %>").addClass('notavailablecss').fadeTo(900, 1);
                       document.getElementById("<%=btnSignUp.ClientID%>").disabled = true;
                     
                     else if (result == "0") 
                         $("#<% =txtUserName.ClientID %>").addClass('availablecss').fadeTo(900, 1);
                        document.getElementById("<%=btnSignUp.ClientID%>").disabled = false;
                     
                     else 
                         $("#<% =txtUserName.ClientID %>").addClass('notavailablecss').fadeTo(900, 1);
                     
                 );
             
         );

         $("#<% =btnavailable.ClientID %>").ajaxError(function (event, request, settings, error) 
             alert("Error requesting page " + settings.url + " Error:" + error);
         );
     );
</script>

【讨论】:

以上是关于使用 javascript 和 asp.net 启用和禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript、asp.net 和 Sql Server

JavaScript 使用javascript和ASP.Net记住div滚动位置

使用 javascript 和 asp.net 启用和禁用按钮

使用 Twitter Bootstrap、C#、asp.net 和 javascript 上传文件

使用 c# 和 asp.net 访问 javascript 代码?

使用 Twitter Bootstrap、C#、asp.net 和 javascript 上传文件