Проверьте, что Payola mount
издана в config/routes.rb
. Это должно выглядеть следующим образом:
mount Payola::Engine => '/payments', as: :payments
Проверьте фоновые задания, которые выполняются, и просмотрите очереди заданий, чтобы увидеть, стоят ли какие-либо задания, связанные с payola, в очереди. [1 125]
Убедитесь, что payola.rb
находится в config/initializers/
Полностью перезапустите приложение и Spring в любое время, когда вы измените config/initializers/payola.rb
, запустив bin/spring stop; bin/rails server
Проверьте любую конфигурацию StripeEvent
во всем приложении на наличие неожиданностей. Аналогично для любого Payola
конфига.
Обновите вызовы Payola.subscribe
для config.subscribe
в файле payola.rb
, приведенном выше.
Только в вашей среде разработки отлаживайте гем payola, добавляя свой собственный код в источник самоцвета payola-payment в любых интересующих вас точках. Найдите его местоположение, запустив bundle show payola-payments
, а затем откройте каталог, напечатанный в вашем редакторе кода. Вы можете внести изменения в любой из файлов в гем, чтобы помочь отладке. Каждый раз, когда вы вносите изменения в этот драгоценный камень, вам нужно будет сделать полный перезапуск, чтобы получить последние изменения: bin/spring stop; bin/rails server
. Как только вы закончите отладку, верните гем в его первоначальное состояние без изменений, запустив bundle exec gem pristine payola-payments
.
Вы хотели бы установить отключенное Обновление свойства
$('#continueButton').attr("disabled", true);
: Ahha, я вижу сложность теперь. Диалоговое окно jQuery имело одну строку, которая будет полезна (под разделом "кнопок".
var buttons = $('.selector').dialog('option', 'buttons');
необходимо будет заставить набор кнопок от диалогового окна, цикла через это находить, в каком Вы нуждаетесь и затем устанавливаете отключенный атрибут, когда я показал выше.
Я нашел обходное решение, которое может относиться к людям, пытающимся сделать что-то подобное. Вместо того, чтобы отключить кнопку я поместил простое if
оператор в функции, чтобы проверить, был ли флажок проверен.
, Если это не было, это отобразило простое сообщение, говоря, что флажок должен был быть установлен перед представлением.
, Например:
$("#confirmation-dialog").dialog({
modal: true,
autoOpen: false,
width: 600,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
close: function() {
$('input[type="submit"]')
.val('Record Reading')
.attr('disabled', false);
},
buttons: {
'Confirm Reading': function() {
if($('#check-box').attr("checked")){
$(this).dialog('close')
$('form')
.addClass('confirmed')
.submit();
}
else {
$('#please-check').show("slide");
}
}
}
});
Так или иначе, я надеюсь, что это помогает кому-то.
Это отключает кнопку:
var firstButton=$('.ui-dialog-buttonpane button:first');
firstButton.addClass('ui-state-disabled');
Вы должны добавить идентификатор диалога, если у вас есть несколько диалогов на странице.
С точки зрения удобства использования, обычно лучше оставить кнопку включенной, но отображать сообщение об ошибке, если кто-то пытается отправить неполную форму. Меня сводит с ума, когда кнопка, которую я хочу нажать, отключена, и я не знаю почему.
Just for the record, this post helped me to solve my problem. In short words, you have to set the disabled attribute to disabled, not to false:
_send_button.attr('disabled','disabled');
This is how all the code looks, I also added some styles to make it look disabled:
var _send_button = $('.ui-dialog-buttonpane button:contains(Send)');
var original_text = _send_button.text();
_send_button.text('Please wait...');
_send_button.addClass('ui-state-disabled');
_send_button.attr('disabled','disabled');
_send_button.fadeTo(500,0.2);
Вот моя функция enableOk для диалогового окна jQuery:
function enableOk(enable)
{
var dlgFirstButton = $('.ui-dialog-buttonpane').find('button:first');
if (enable) {
dlgFirstButton.attr('disabled', '');
dlgFirstButton.removeClass('ui-state-disabled');
} else {
dlgFirstButton.attr('disabled', 'disabled');
dlgFirstButton.addClass('ui-state-disabled');
}
}
«Первая» кнопка - крайняя справа. Вы оба отключаете кнопку и устанавливаете отключенный класс диалога для правильного визуального эффекта.
Я хотел найти кнопку по имени (поскольку у меня есть несколько кнопок в диалоговом окне jQuery UI). У меня также есть несколько диалогов на странице, так что мне нужен способ получить кнопки определенного диалога. Вот моя функция:
function getDialogButton( dialog_selector, button_name )
{
var buttons = $( dialog_selector + ' .ui-dialog-buttonpane button' );
for ( var i = 0; i < buttons.length; ++i )
{
var jButton = $( buttons[i] );
if ( jButton.text() == button_name )
{
return jButton;
}
}
return null;
}
// create the dialog
$('#my_dialog').dialog( dialogClass : 'dialog1',
buttons: {
Cancel: function() { $(this).dialog('close'); },
Submit: function() { ... }
} );
// now programmatically get the submit button and disable it
var button = getDialogButton( '.dialog1', 'Submit' );
if ( button )
{
button.attr('disabled', 'disabled' ).addClass( 'ui-state-disabled' );
}
Это очень просто:
$(":button:contains('Authenticate')").prop("disabled", true).addClass("ui-state-disabled");
Если вы действительно хотите отключить кнопку, я обнаружил, что необходимо также вызвать для нее метод .unbind(). В противном случае кнопка может оставаться активной, и двойное нажатие может привести к многократному отправлению формы. У меня работает следующий код:
button = $(this).parent().find("button:contains('OK')");
button.unbind();
button.addClass('ui-state-disabled');
Я думаю, это должно работать со всеми,
<script type="text/javascript">
$(document).ready(function() {
$('#dialog').dialog('open');
$(function(){
$('#dialog').dialog({
autoOpen: true,
width: 400,
modal: true,
overlay: {
opacity: 0.8,
background: "black"
},
resizable: false,
show: 'slow',
buttons: {
//"OK":function() {
// window.location="index.php?view=list";
//},
"Cancel": function() {
$(this).dialog("close");
$(this).attr("class", "button");
}
}
});
var dlgFirstButton = $('.ui-dialog-buttonpane').find('button:first');
dlgFirstButton.addClass('button');
});
});
</script>
Я нашел простой способ отключить (или выполнить любое другое действие) кнопку диалогового окна.
var dialog_selector = "#myDialogId";
$(dialog_selector).parent().find("button").each(function() {
if( $(this).text() == 'Bin Comment' ) {
$(this).attr('disabled', true);
}
});
Вы просто выбираете родительский элемент вашего диалога и находите все кнопки. Затем, проверив текст вашей кнопки, вы можете идентифицировать свои кнопки.
можно просто добавить идентификатор к кнопке, это не находится в документе, но это работает.
$().dialog(buttons:[{id:'your button id'....}]);
затем в Вашей функции просто используют
$('#your button id')
для отключения его.