2014-09-23 2 views
0

Я использую интерфейс Ladda для бутстрапа.Как отключить кнопку Ladda?

Использование jquery Я пытаюсь отключить кнопку после того, как пользователь нажмет на нее.

Я попытался использовать ajax OnComplete/OnSuccess/OnBegin, но безрезультатно - кнопка остается включенной.

Если я поменяю разметку вручную на firebug - я могу отключить его. Также обратите внимание на js fire.

Вот разметка:

<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, чтобы имитировать отключенное состояние некоторым классом ... –

ответ

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> 

или вы могли бы добавьте класс disabled, используемый в bootstrap:

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

Проблема в том, что я использую asp.net-MVC и '@ Ajax.ActionLink' производит якорный тег ... поэтому я сделаю кнопку. Хотелось бы, чтобы я использовал какую-то технику, которая спасла бы меня от изменения подхода actionlink. – ilans

+1

Вы можете установить привязку в отключенную в bootstrap, добавив класс «disabled». '' функция AjaxOnCompleteDisableButton() { $ ("# icalSync"). addClass ("disabled"); } – Macsupport

+0

Да! это ответ. Было бы здорово, если вы напишете это в своем ответе :) – ilans

2

Ваша «кнопка» на самом деле не кнопка. Вам нужно подойти по-другому. Либо сделайте его <button>, либо в AjaxOnCompleteDisableButton присвойте ему класс, который заставит его выглядеть так, как будто он отключен (например, непрозрачность: 0,5) и игнорирует инициирующие события на нем.

Смежные вопросы