如何在浏览器处理请求时禁用启动按钮

时间:2013-01-11 13:54:03

标签: c# javascript jquery asp.net

我有启动和停止按钮 我用它来 在服务器上启动和停止窗口服务 当我点击开始按钮服务启动但是它需要一些时间来启动服务 在该时间跨度内意味着启动服务。 我必须在客户端禁用启动按钮, 同样禁用停止按钮。

当按钮被禁用时,我使用了下面的代码 btnStart禁用但Windows服务无法启动...

的javascript

 function btnStartClick()
 {
 $("input[ID=btnStart]").attr("disabled", "disabled");
 }

C#

protected void btnStart_Click(object sender,EventArgs e)
{
//service starst code here
}

标记

 <asp:Button ID="btnStart" runat="server" Text="Start" OnClientClick="return btnStartClick();" OnClick="btnStart_Click" />

6 个答案:

答案 0 :(得分:0)

为什么不使用'#'..而不是属性选择器...这比你使用的更快更有效

$('#<%= btnStart.ClientID %>').attr("disabled", "disabled");

答案 1 :(得分:0)

$('#<%= btnStart.ClientID %>').attr("disabled", "disabled");

答案 2 :(得分:0)

如果我理解你的话。

您可以将asp请求发送到您拥有服务启动逻辑和禁用按钮的asp页面,之后检查您的ajax响应,如果您的服务启动您启用按钮,如果没有显示消息或以任何其他方式处理它

如果您只询问如何使用jQuery禁用按钮,请查看 humpty dumpty bipen 回答。

答案 3 :(得分:0)

您有几个选择:

$('#<%= btnStart.ClientID %>').prop("disabled", true);

使用ASP.NET选择OR:

$("input[id$=btnStart]").prop("disabled", true);

每个ID都以btnStart结尾的输入,当您的控件不在范围内时,这些输入有时很有用。

正如另一条评论所指出的,一旦按钮被禁用,它可能不会触发代码隐藏onClick,所以在这种情况下,最好隐藏/只读按钮而不是禁用它。

答案 4 :(得分:0)

他的问题不在于他不能禁用按钮,而是他希望他的OnClick事件能够解雇。他的按钮点击事件不会为禁用按钮触发。

如果您尝试阻止以后的点击,可以隐藏该按钮,然后从代码隐藏中禁用它:

<script>
    function btnStartClick() {
        $("#<%= btnStart.ClientID %>").hide();
        return true;
    }
</script>

和代码背后:

protected void btnStart_Click(object sender, EventArgs e)
{
     btnStart.Enabled = false;
     //service starts code here
}

答案 5 :(得分:0)

感谢回复我得到了解决方案

<asp:Button ID="btnStart" runat="server" Text="Start" OnClientClick="this.disabled = true; this.value = 'Please Wait';"
            UseSubmitBehavior="false" OnClick="btnStart_Click" />