【问题标题】:how do I disable Button asp.net如何禁用按钮 asp.net
【发布时间】:2012-11-12 09:04:49
【问题描述】:

如何在 asp.net 中禁用或启用按钮?我想在单击后禁用按钮以防止双击。我试图在点击后禁用我的登录按钮。

【问题讨论】:

  • 我无法禁用按钮。当用户输入用户名和密码并单击登录按钮时,该按钮未被禁用,并且还希望在用户登录失败时启用它。
  • 看看thisjsfiddle
  • 它会将值发布到服务器,然后您要禁用此按钮。对吗?
  • @krshekhar 是的,它需要

标签: asp.net


【解决方案1】:

您必须在客户端禁用它,以便用户无法再次单击它。

<asp:button id="btn" runat="server" OnClientClick="this.disabled=true;"......

在服务器端的 asp.net 代码上禁用。

btn.Enabled = false;

【讨论】:

  • 如果用户在没有输入用户名和密码的情况下点击它会被禁用。
  • @adil 即使他写下用户名和密码然后单击,如果您禁用该按钮,它也不会将值发布到服务器。
  • 是否有可能为此提出一个新问题,因为这与 OP 完全不同
  • @Șhȇkhaṝ 我注意到了同样的情况(按钮会禁用,但后面的代码不会触发)——我添加了 UseSubmitBehavior=False 并且它按预期工作。
  • 不点击怎么禁用??
【解决方案2】:

您可以使用客户端的 onclick 事件来执行此操作:

yourButton.Attributes.Add("onclick", "this.disabled=true;");

您可以使用 javascript 来做到这一点。在您的表单标签中,

onsubmit="javascript:this.getElementById("submitButton").disabled='true';"

在文件后面的代码中你可以这样做

button1.enabled = false 

【讨论】:

  • 如果用户在没有输入用户名和密码的情况下点击它会被禁用。
  • @Amol 你应该在你的问题中指定。
【解决方案3】:

编写一个 java-script 函数来检查用户名和密码。
如果它们不为空,则禁用该按钮。
但是,如果您禁用该按钮并且有回发。并且在回发之后仍然会启用。
所以Idea是

  1. 创建一个 java 脚本函数。
  2. 验证用户名和密码
  3. 如果它们是有效的
  4. 禁用按钮 (javascript)。
  5. 将 ClientIdMode="Static" 添加到您的 &lt;asp:button&gt; 以防止 .NET 破坏名称。

--编辑

<asp:button id="btn" runat="server" ClientIdMode="Static" OnClientClick="return btn_disable" ...

你的 java 脚本代码

function btn_disable
{
   //check for user name and password
   // if filled
   document.getElementById("btn").disabled=true;

}

【讨论】:

  • 不错的尝试,但是 bs 网络表单如何处理您的 id 命名?
  • @Developerdeveloperdeveloper 使用 ClientIdMode="Static"
【解决方案4】:

仅限前端:

<button id="loginbtnID" onclick="DisableBtn()">Log in</button>

<script type="text/javascript">
  function DisableBtn() {
    document.getElementById("loginbtnID").disabled = true;
  }
</script>

前端和代码背后:

(这会重新加载整个页面。检查this 以防止重新加载)

禁用按钮.aspx:

<button id="loginbtnID" runat="server" onclick="DisableBtn()" OnClick="codeBehindFunction">Log in</button>

禁用button.aspx.cs:

protected void codeBehindFunction(object sender, EventArgs e)
{
  loginbtnID.Disabled = false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2011-02-23
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多