如何在脚本元素中为数据属性设置值

时间:2017-05-18 06:18:31

标签: javascript jquery

我有这段代码:

<div class="cc-selector col-md-3">
<form method="POST" action="<?php echo base_url() . 'home/cart_finish/go'; ?>" class="checkout-form">
    <input type="hidden" name="payment_type" value="omise">
    <script src="https://cdn.omise.co/omise.js.gz"
        data-key="<?php echo $omise_public_key_test; ?>"
        data-image=" "
        data-frame-label="Acme"
        data-button-label="<?php echo translate('pay_now');?>"
        data-submit-label="<?php echo translate('submit');?>"
        data-location="no"
        data-amount=" "
        data-currency="us"
        >

      var total = $('#grand').html();
      $("[data-amount]").attr('data-amount', total);
     </script>  
</form>

我想为“data-amount”属性设置一个值。我尝试使用上面的代码,但它不起作用。

注意:Omise是类似于Stripe的支付网关。该代码将呈现一个付费按钮。我必须在渲染之前设置数据量。这就是为什么我不能等待$文件准备好了。我希望这是有道理的。

2 个答案:

答案 0 :(得分:1)

<script>元素附加到document,但不包含src属性。在单独的<script>元素中选择script元素并设置data-amount属性,并将src属性设置为资源路径。

    <script id="script"
        data-key="<?php echo $omise_public_key_test; ?>"
        data-image=" "
        data-frame-label="Acme"
        data-button-label="<?php echo translate('pay_now');?>"
        data-submit-label="<?php echo translate('submit');?>"
        data-location="no"
        data-amount=" "
        data-currency="us"
        >
     </script>  
     <script>           
     var total = $('#grand').html();
     $("#script[data-amount]")
     .attr({
       "data-amount": total,
       "src":"https://cdn.omise.co/omise.js.gz"
     });
     </script>
</form>

答案 1 :(得分:0)

一切事,

  1. 如果你想操纵脚本标签,你不能从内部做到这一点(据我的经验所示)。

  2. 在脚本标记存在(加载)之前,您无法编辑脚本标记。

  3. 该按钮具有data-amount属性。你能不能编辑它?
  4. $(function(){
            // Button configure will merged and override with default configure.
            // And has effect with this button only.
            OmiseCard.configureButton('button[data-frame-label="Acme"]', {
              amount:           30.95,
              currency:         'thb',
              image:            'YOUR_LOGO_URL',
              frameLabel:       'Merchant name',
              frameDescription: 'Merchant description',
              submitLabel:      'Pay $30.95',
              buttonLabel:      'Pay with Omise',
              location:         'no',
              billingName:      '',
              billingAddress:   '',
              submitFormTarget: null,
            });
            OmiseCard.attach();
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <div class="cc-selector col-md-3">
        <form method="POST" action="<?php echo base_url() . 'home/cart_finish/go'; ?>" class="checkout-form">
            <input type="hidden" name="payment_type" value="omise">
            <script src="https://cdn.omise.co/omise.js.gz"
                data-key="Something"
                data-image=" "
                data-frame-label="Acme"
                data-button-label="Button"
                data-submit-label="Button"
                data-location="no"
                data-amount=" "
                data-currency="us"
                >
             </script>
        </form>