2013-12-04 3 views
1

После нажатия кнопки «Contribute» на моем сайте появится оверлейная форма; однако, если кто-то должен был немедленно нажать «Отправить залог» перед подачей информации, кнопка будет отключена (как кнопка Stripe) для дальнейшего использования. В результате они не могут добавить кредитную карту или отправить форму; он постоянно отключается, пока не обновит страницу.Кнопка отправки отключена после первого щелчка

Как его изменить, чтобы кнопка «Отправить залог» все еще активна даже после первого нажатия? Пожалуйста, дайте мне знать, нужна ли дополнительная информация.

Живые демо можно найти здесь: http://www.cantedpictures.com/9test/

В противном случае: здесь являются ЯШИ:

$(function(){ 
    $("#donateModal").on('show', function() { 
    // Fix StripeButton sizing bug on Firefox and IE 
    $(".stripe-button-inner, .stripe-button-inner iframe").width(132).height(36); 
    // ensure button scrolls with the rest of the page 
    $(".stripe-button-inner iframe").css('position', 'relative'); 
    }); 

    // Stripe Button Triggers formDomElement.submit(). 
    // We intercept it and notify user we have received the token 
    var paymentForm = $('#payment-form')[0]; 
    paymentForm.original_submit = paymentForm.submit; 
    paymentForm.submit = function() { 
    $("#stripe-button-holder .stripe-button-inner").html(
     '<span class="label label-success"> 
     <i class="icon-ok"></i> Card Added</span>'); 
    return false; 
    }; 

    $('#payment-form').validate({ 
     rules: { 
     'first-name': { 
     minlength: 1, 
     required: true 
     }, 
     'last-name': { 
     minlength: 1, 
     required: true 
     }, 
     email: { 
     required: true, 
     email: true 
     }, 
     amount: { 
     required: true, 
     min: 10, 
     }, 
     'tos-agreed': { 
     required: true 
     } 
     }, 
     messages: { 
     'tos-agreed': 'You need to agree to the Terms of Service', 
     'first-name': 'Please give us your first name', 
     'last-name' : 'Please give us your last name', 
     'email'  : 'Please give us your email so that we can contact you', 
     'amount' : 'Please pledge at least $10.' 
     }, 
     errorPlacement: function (error, input) { 
     $(input).closest('.controls').append(error); 
     }, 
     highlight: function(el) { 
     $(el).closest('.control-group').addClass('error'); 
     }, 
     unhighlight: function(el) { 
     $(el).closest('.control-group').removeClass('error'); 
     }, 
     submitHandler: function(form) { 
     // ensure CC info has been entered 
     if (! $('[name=stripeToken]').val()) { 
      $("#stripe-button-holder").closest('.control-group').addClass('error'); 
      $("#stripe-button-holder").append('<label class="error"> 
       Please Add Payment Information</span>') 
      window.location.reload(); 
     } else { 
      form.original_submit(); 
     } 
     } 
    }); 
});//]]> 
+0

Я думаю, что он не отключен для меня (я использую хром btw) –

+0

Я должен был уточнить: кнопка «Contribute» работает, но кнопка «Отправить залог» не работает, если вы нажмете на нее немедленно. После того, как вы нажмете «Contribute», и если вы сразу же нажмете «Отправить залог», кнопка будет окончательно отключена. – user3055189

ответ

2

Вы должны определить свою кнопку и заменить ниже 'button' с '#myButtonId', но как только вы делаете вы можете использовать

$('button').prop('disabled', '');

удалить отключенного свойства ,

+0

Hey Tomanow, Я изменил код так, как вы сказали, но он по-прежнему не работает. Вы знаете, где я ошибся? Я изменил идентификатор и заменил отключенное свойство: $ ('button'). Prop ('disabled', ''); – user3055189

+0

Ваш селектор jQuery должен быть идентификатором кнопки. Например, если ваш идентификатор кнопки 'myButton' do' $ ('# myButton'). Prop ('disabled', ''); 'в обратном вызове, который вы хотите вызвать, чтобы кнопка была отключена. – Tomanow

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