使用 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】:不幸的是,您的问题与enabled
和disabled
之间的差异一样小
.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 上传文件