Javascript 已禁用的链接按钮仍在asp.net webform中提交

Javascript 已禁用的链接按钮仍在asp.net webform中提交,javascript,asp.net,Javascript,Asp.net,我试图禁用一个链接按钮,以防止用户多次提交 我在这里看到了很多类似的问题,因此,大多数人建议使用以下javascript: button.disabled=true或button.disabled='disabled' 这确实禁用了按钮(按钮变灰),但问题是它仍然可以单击,并且仍然提交 这是我的精简代码: 功能验证按钮(按钮){ //其他一些代码 button.disabled=true; button.value='Processing…'; } 为什么按钮仍然可以单击,并在禁用后提交 按钮

我试图禁用一个链接按钮,以防止用户多次提交

我在这里看到了很多类似的问题,因此,大多数人建议使用以下javascript:

button.disabled=true
button.disabled='disabled'

这确实禁用了按钮(按钮变灰),但问题是它仍然可以单击,并且仍然提交

这是我的精简代码:

功能验证按钮(按钮){
//其他一些代码
button.disabled=true;
button.value='Processing…';
}

  • 为什么按钮仍然可以单击,并在禁用后提交
  • 按钮文本仍然是“提交”而不是“处理…”,为什么

  • 我也遇到了同样的问题,禁用链接按钮不会阻止它发送请求,禁用链接按钮时,您应该从链接按钮中删除事件。

    有时,我会将链接按钮替换为具有相同文本的标签。

    将此添加到
    ValidateButton

    button.onclick = function(){return false;};
    

    如果按钮仍然可以单击,且值从不更改为“处理…”,那么您确定正确地定位了按钮吗

    您可以尝试按id指定按钮的目标:

    document.getElementById("btnSubmit ").disabled = true;
    document.getElementById("btnSubmit ").value = 'Processing...';
    
    然后您就可以确定您正在操作正确的元素


    您也可以编写对表单提交事件的更改脚本函数返回false;-这样用户就不能将光标放在表单字段中并通过按enter键提交它,这会绕过按钮。

    a
    LinkButton
    控件被呈现为
    a
    元素,而该元素没有禁用的
    属性或
    值伊布特


    您拥有的代码适用于呈现为
    input type=“Button”
    input type=“submit”的
    Button
    控件“
    ,但不适用于链接。为了使它看起来被禁用,您需要更改它的颜色,并且为了防止它提交,您需要从客户端单击事件处理程序返回false。使用
    innerHTML
    属性更改链接的文本。

    要防止回发,请在您决定禁用按钮时,向您的
    ValidateButton
    功能添加
    return false

    您可以像往常一样禁用链接按钮(客户端或服务器端)如果按钮/链接未被禁用,则必须修改JavaScript以仅执行工作。因此,在你的情况下:

    <asp:LinkButton Text="Submit" ID="btnSubmit" runat="server" OnClientClick="return ValidateButton(this);"></asp:LinkButton>
    
    如果客户端onClick函数返回false,则回发将永远不会发生

    function ValidateButton(button){
        if (!button.disabled) {
            // do work here
        }
    }