[英]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.