2014-09-23 112 views
0

我正在使用Ladda UI進行引導。如何禁用ladda按鈕?

使用jquery我嘗試禁用一個按鈕後,用戶點擊它。

我試圖使用ajax OnComplete/OnSuccess/OnBegin,但沒有用 - 按鈕保持啓用狀態。

如果我在螢火蟲上手動更改標記 - 我可以禁用它。另外請注意,js肯定會引發火災。

這裏的標記:

<a id="icalSync" href="/iCal/iCalCreatedLinks" data-ajax-method="GET" data-ajax-complete="AjaxOnCompleteDisableButton" data-ajax="true" data-style="expand-left" class="btn ladda-button"> 
<span class="ladda-label">Sync iCal</span> 
<span class="ladda-spinner"></span> 
</a> 

這裏的js函數:

function AjaxOnCompleteDisableButton() { 
    $("#icalSync").attr("disabled", true); 
} 

我會很感激有這方面的幫助。

+2

由於'a'元素沒有任何'disabled'屬性,所以這不起作用... Eit她把你的元素改爲'button','input'或者添加一個CSS規則來模仿某些類的禁用狀態...... – 2014-09-23 13:41:56

回答

2

禁止不符合錨標記有效的,所以你可以試試這個:

function AjaxOnCompleteDisableButton() { 
event.preventDefault(); 
} 

或更改您可以將您的一個#icalSync一個按鈕,並使用你的代碼

<button id="icalSync" href="/iCal/iCalCreatedLinks" data-ajax-method="GET" data-ajax-complete="AjaxOnCompleteDisableButton" data-ajax="true" data-style="expand-left" class="btn ladda-button"> 
<span class="ladda-label">Sync iCal</span> 
<span class="ladda-spinner"></span> 
</button> 

或者你可以添加禁用的類,用於自舉:

function AjaxOnCompleteDisableButton() { $("#icalSync").addClass("disabled"); } 
+0

問題是我使用asp.net-MVC和'@ Ajax.ActionLink'生成一個錨標籤...所以我會做一個按鈕。我希望我可以使用一些技術來爲我節省行動鏈接方法的改變。 – ilans 2014-09-23 13:50:32

+1

您可以通過添加「disabled」類來將引腳設置爲在引導程序中禁用。 ''函數AjaxOnCompleteDisableButton(){(「#icalSync」)。addClass(「disabled」); } – Macsupport 2014-09-23 14:01:21

+0

是的!這是答案。會很好,如果你在你的答案寫這個:) – ilans 2014-09-23 14:06:22

2

你的「按鈕」並不是一個真正的按鈕。你需要以不同的方式來對待它。要麼使其成爲<button>或在AjaxOnCompleteDisableButton中爲其分配一個類,使其看起來像禁用(例如opacity:0.5),並忽略觸發事件。