2014-08-28 35 views
0

我有这个问题,我的magento onepage结帐。 我想要实现的是,当你按下完成订单,它禁用按钮只有当一切都被填充和服务类型检查:将jquery实现为prototypejs

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

按下“bestelling plaatsen”,而不是一切正确填写它仍然变灰。

现在我的想法是实现我在onepagecheckout脚本中使按钮灰色的自定义代码,但问题是我写的代码是Javascript,但onepage结帐脚本位于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

双岗和已经回答了13小时以前这里:http://stackoverflow.com/a/ 25530427/1641941你为什么觉得有必要再问这个问题? – HMR 2014-08-28 14:33:13

+0

这不是同一个问题,该帖子是我问如果有人可以将它翻译成原型,这篇文章是关于如何将它实现到我的magento onetep结帐 – TappX 2014-08-28 15:27:13

+0

因此,您发布在这个问题上的jQuery代码和确切另一个问题中的相同代码不起作用?你不是说你需要翻译成原型吗? (注意prototypejs不是原型)。如果jQuery代码正在工作,但您不想添加jQuery库,我会按照昨天已经回答的建议进行操作。或者让它更清楚你问的是什么,因为它看起来很像你问如何在prototypejs中编写jQuery代码。以及在这个问题的答案评论中字面上指出。 – HMR 2014-08-28 15:33:29

回答

0

继承人在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 2014-08-28 13:05:09