【问题标题】:Not able to pass value in script无法在脚本中传递值
【发布时间】:2016-11-03 09:29:11
【问题描述】:

我正在使用支付网关 (razorpay),我在其中传递一定金额然后支付金额,但其中金额固定在按钮内,如图所示

<script
    id="myScript"
    src="https://checkout.razorpay.com/v1/checkout.js"
    data-amount="20000"
    data-buttontext="Payment"
></script>

现在我要做的是允许用户通过如下所示的输入输入任何值(以 Rs 为单位)

<?php
    $data = array(
        'id'=>"myInput",
        'type'=>'text', 
        'class' => "form-control",
        'name'=>'value',
        'autocomplete'=>'off', 
        'placeholder'=>'Amount for wallet' 
        );
?>
<?php echo form_input($data); ?>

输入的任何金额都应转换为 paise,然后将其传递到razor pay 脚本中。

为此,我使用了 keyup 功能并将data-amount 留空,如下所示

<script
    id="myScript"
    src="https://checkout.razorpay.com/v1/checkout.js"
    data-amount=""
    data-buttontext="Payment"
></script>

<script>
$('#myInput').on('keyup',function(e){
  $('#myScript').data('amount', $(this).val());

});
</script>

但问题是,如果我将值留空,razorpay 按钮就会消失,如果它不为空,则它没有选择所需的值。

谁能告诉我如何将用户输入的值传递到razorpay 中的data-amount

【问题讨论】:

    标签: javascript jquery payment-gateway keyup


    【解决方案1】:

    您需要在更改时删除包含的脚本并重新包含新数量的脚本。

    支付网关API DOClink

    $(document).ready(function() {
    
      $('#myInput').on('keyup', function(e) {
    
        /* Remove Old amount script */
        $(document).find("#myScript").remove();
    
        /* Include new amount script */
        $('head').append('<script type="text/javascript" src="https://checkout.razorpay.com/v1/checkout.js" id="myScript" data-amount="' + $(this).val() + '" data-buttontext="Payment" ><\/script>');
      });
    
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" id="myInput" value="" />

    【讨论】:

      猜你喜欢
      • 2016-09-14
      • 2018-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2017-12-11
      相关资源
      最近更新 更多