2015-11-04 38 views
2

我需要让我的脚本检出使用我的var $priceCheckout = $('#priceCheckout');来获得结帐价格值。使条带“数据量”与变量一起使用动态

我试图用data-amount= $priceCheckout;代替data-amount =“2000”,没有任何运气。所以要清醒!

它需要采取我的$ priceCheckout并得到它的数据量安置,以便$ priceCheckout的价值将结帐价格!

<form action="" method="POST"> 
    <script 
    src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
    data-key="Personal key" 
    data-amount= ??? 
    data-name="Elo Calculator" 
    data-description="Checkout price" 
    data-image="/128x128.png" 
    data-locale="auto"> 
    </script> 
</form> 

这是我的脚本。

$(function() { 
      // Store references to frequently used elements - for speed. 
      var $divFrom = $('#division-from'); 
      var $divTo = $('#division-to'); 
      var $tierFrom = $('#tier-from'); 
      var $tierTo = $('#tier-to'); 

      var $price = $('#price'); 
      var $priceCheckout = $('#priceCheckout'); 

      // Select price calculation callback 
      $(document).on('change', '.price-modifier', function() { 
       var divFrom = $divFrom.val(); 
       var divTo = $divTo.val(); 
       var tierFrom = $tierFrom.val(); 
       var tierTo = $tierTo.val(); 

       // Error handling 
       var errors = validatePriceModifiers(divFrom, tierFrom, divTo, tierTo); 
       if (errors.length === 0) { 
        // No errors 
        var price = getPrice(divFrom, tierFrom, divTo, tierTo); 
        $price.html(price + ' €' + '<br /> <br />' + '<button type="submit" data-toggle="modal" data-target="#myModal" class="btn btn-info">Buy</button>'); 
        $priceCheckout.html(price); 
       } else { 
        // Display errors 
        $price.empty(); 
        for (var i = 0; i < errors.length; i++) { 
         $price.append($('<p>').html(errors[i].message)); 
        } 
       } 
      }); 
     }); 
+0

我不确定它到底在问什么,您是否可以尝试澄清您的问题并解决任何拼写/语言错误? – Buurman

+0

我不擅长英语嗯。这是因为我有一个价格计算器,如果你选择1件东西,它会给出1个价格,如果你选择另一件,它会给出另一个价格。我需要它的价格是它的数据量来结帐。我有一个变量是callede $ priceCheckout它具有我所有的价格。并且这就是我需要它添加到data-amount的价格='“ – OleHansen

+0

'$('。stripe-button')。attr('data-amount',$ priceCheckout);'现在在你的代码中,'$ priceCheckout'不是一个值,而是一个jq对象。无论如何,我看不到它的目的。你应该至少尝试提供MCVE –

回答

1

这里的关键是data-amount是HTML脚本标记的一个属性。它是而不是的一个JavaScript变量,并且您可以在而不是中直接为其分配一个HTML标记(如<element attribute=variable-name>)。

但是,您可以使用JavaScript这样的值分配给它:

$('.stripe-button').attr('data-amount', $priceCheckout); 

该代码将与类stripe-button改变任何HTML元素的属性data-amount到值的变量$priceCheckout有代码的时候运行。

那么你什么时候想要运行它?您需要在将$priceCheckout设置为变量后运行它(如果价格更改,则需要再次运行以更新它)。但是你需要在使用该值的任何代码运行之前运行它。

+0

Dosen't工作它仍然是空的 – OleHansen

+0

然后你可能设置它在错误的时间。 – Anders

3

您需要为此使用结帐custom integration

这里是展示了如何使用Google Checkout可与用户指定量的简单小提琴:https://jsfiddle.net/ywain/g2ufa8xr/

您可以使用相同的逻辑在你自己的价值在调用handler.open()amount参数堵塞。

+0

您可以尝试使用我的#priceCheckout进行设置吗?我不能使它工作:(会很好,这是我用来计算价格:var $ priceCheckout = $('#priceCheckout');。 – OleHansen