[英]ASP.NET linkbutton enabled=false does not work in Firefox
我想禁用ASP.NET linkbutton
。 我想要的是一个解决方案,其中浏览器不允许我单击链接按钮,或者至少不执行相关操作。
我使用WebForms
在HTML标记上执行以下操作:
<asp:LinkButton
id="link1"
text="Some button"
runat="server"
Enabled ="false"
/>
我使用jQuery事件触发链接按钮操作:
$('#link1').click(function (evt) {
// Do something here
return false;
});
如果在后面的代码中将其禁用,结果将相同:
this.link1.Enabled = false;
不清楚您是否简化了它,但是由于按钮的客户端ID的更改,看来您的jQuery无法执行。 您将需要执行以下任一操作:
在控件上将ClientIDMode
设置为static
...
确保id
保留为link1
以便在客户端代码中使用。
<asp:LinkButton
id="link1"
text="Some button"
runat="server"
Enabled ="false"
ClientIDMode="static"
/>
或者,在运行时在jQuery中获取控件的ID ...
尽管这仅在您的jQuery位于同一Web表单页面而不是外部JS内有效。
$('#<%= link1.ClientID %>').click(function (evt) {
// Do something here
return false;
});
无论您选择...
如果链接正确,则可以使用jQuery的preventDefault()方法禁用回发触发。
$('#link1').click(function (evt) {
evt.preventDefault();
// Do something here
});
禁用链接按钮不会阻止其被单击。 在我的测试中,禁用的linkbutton呈现如下:
<a class="aspNetDisabled">test</a>
jQuery将愉快地将click事件附加到该锚标记。 您需要防止事件触发或更改代码,以便仅在启用按钮后才执行您的操作。
这是一个可能的解决方法,仅在启用该按钮后才会执行您的js:
$('#link1').click(function (evt) {
if('<%=link1.Enabled%>' === 'True') {
// Do something here
}
return false;
});
即使客户端触发了禁用按钮,if语句也会导致Do something here
执行操作”无法运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.