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