2014-08-28 3 views
0

У меня есть эта проблема с моим контрольным пакетом magento onepage. Я хочу осуществить, что при нажатии полного порядка отключает кнопку только когда все заливается и ToS проверяются:Внедрение jquery в prototypejs

screenshot http://i59.tinypic.com/96c5fb.png screenshot http://i62.tinypic.com/11bq45d.png

вы нажимаете «bestelling plaatsen» и не все правильно заполненный, он по-прежнему становится серым.

Теперь у меня возникла идея реализовать пользовательский код, который я использовал, чтобы сделать серию серым в сценарии onepagecheckout, но проблема в том, что код, который я написал, - это Javascript, но скрипт проверки одной страницы находится в prototypejs.

Вот код из моего сценария;

jQuery(document).ready(function($){ 
    var btn = $('#onestepcheckout-button-place-order'); 
    var btnTxt = $('#onestepcheckout-button-place-order span span span'); 
    var fewSeconds = 10; 

    btn.click(function(){ 
     btn.prop('disabled', true); 
     btnTxt.text('Even geduld A.U.B.'); 
     btn.addClass('disabled'); 

     setTimeout(function(){ 
      btn.prop('disabled', false); 
      btnTxt.text('Bestelling plaatsen'); 
      btn.removeClass('disabled'); 
     }, fewSeconds*1000); 
    }); 
}); 

и это код, в котором я думаю, что он должен быть реализован;

Event.observe('onestepcheckout-button-place-order', 'click', function(e) { 
    var form = new VarienForm('one-step-checkout-form'); 
    var validator = new Validation(this.form); 
    if (validator.validate()) {   
     var element = e.element(); 
     //disable the button 
     element.disabled = true; 
     $('one-step-checkout-form').submit(); 
    } 
    else { 
     //alert('Error'); 
    } 
}); 
+0

Двойной пост и уже ответили 23 часа назад здесь: http://stackoverflow.com/a/ 25530427/1641941 Почему вы чувствуете необходимость снова просить об этом? – HMR

+0

Это не тот вопрос, на котором я спросил, может ли кто-то перевести его на прототип, этот пост - вопрос о том, как я могу реализовать его в моем контрольном контроле magento onestep. – TappX

+0

Итак, код jQuery, который вы разместили в этом вопросе, и точный тот же код в другом вопросе не работает? Вы не говорите, что вам нужно это перевести на prototypejs? (note prototypejs не прототип). Если код jQuery работает, но вы не хотите добавлять библиотеку jQuery, я бы пошел с предложением, которое уже было ответило вчера. Или уточните, что именно вы спрашиваете, потому что это очень похоже на то, как вы спрашиваете, как написать код jQuery в prototypejs. А также буквально заявляя, что в комментарии к ответу в этом вопросе. – HMR

ответ

0

Heres ваш фрагмент кода в PrototypeJS

document.observe('dom:loaded',function(){ 
    var fewSeconds = 10; 
    $('onestepcheckout-button-place-order').observe('click',function(){ 
     var textelement = this.down('span span span'); 
     this.writeAttribute('disabled','disabled'); 
     textelement.update('Even geduld A.U.B.') 
     this.addClassName('disabled'); 
     setTimeout(function(){ 
      this.writeAttribute('disabled',false); 
      textelement.update('Bestelling plaatsen'); 
      this.removeClassName('disabled'); 
     }.bind(this),fewSeconds*1000) 
    }); 

}); 

Я сделал некоторые улучшения, чтобы сделать код более кратким

0

мне удалось заставить его работать, используя следующее:

jQuery.noConflict();

jQuery(document).ready(function($) { 
// You can use the locally-scoped $ in here as an alias to jQuery. 
// or change $ above to $j 
$("#how-it-works .step").hide(); 

$('.step').each(function(index) { 
$(this).delay(index * 700).fadeIn(); 
}); 
}); 

Сочетание нескольких сообщений на здесь. Кажется, это действительно простой и легкий. Спасибо всем за помощь!

+0

Я знаю о синтаксисе noConflict, но мне нужен код, который я либо перевел на прототип, либо смог реализовать во втором распространенном мной коде. – TappX

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