2013-06-25 11 views

Odpowiedz

0

Możesz użyć jQuery, aby usunąć atrybut disable-with, który Rails dodaje do przycisku: $ ("# disabledbutton"). RemoveAttr ("data-disable-with");

+1

Ach, ciekawy. Poszukuję czegoś, co zmieni jego pierwotny stan. Wydaje się, że to nie robi. – bevanb

+0

Jak powiedział bevanb. To nie zmienia elementu z powrotem do jego pierwotnego stanu. –

6

Rozwiązanie znalazłem here:

$(window).unload(function() { 
    $.rails.enableFormElements($($.rails.formSubmitSelector)); 
}); 
1

oparciu o rozwiązania @DGM skończyło się z następującego kodu:

$.rails.enableFormElements($disabled_button); 

Gdzie:

$disabled_button obiektem jQuery dla przycisku wyłączona przez data-disable-with które mogłyby należy wybrać w ten sposób:

$disabled_button = $('[data-disable-with]'); 
8

Wywołanie do ponownego włączenia łączy różni się nieco od elementów formularza. W rzeczywistości łączy program obsługi z wydarzeniem kliknięcia, które powstrzymuje cokolwiek innego. Udało mi się to ustalić przez investigating how the jquery-ujs library.

Aby odwrócić ten efekt, wystarczy użyć metody enableElement na obiekcie jQuery:

$.rails.enableElement($('a[data-disable-with]')); 


Z Turbolinks, ale również przyczynia się do oglądania na razie 'page:change' zamiast window.unload:

$(document).on('page:change', function() { 
    $.rails.enableElement($('a[data-disable-with]')); 
}); 
2

Railsy zaktualizowały swój javascript, aby nie używać jQuery.

Teraz można ponownie włączyć elementy z następujących czynności (zakładając, że nadal są przy użyciu jQuery):

var selectors = [Rails.linkDisableSelector, Rails.formEnableSelector].join(', '); 
$(selectors).each(function() { 
    Rails.enableElement(this); 
}) 
0

Hej jego dość proste wystarczy przycisk, aby znaleźć i zrobić

$button = $('#someId') 
$.rails.enableElement($button) 
$button.removeAttr('disabled') 
Powiązane problemy