无法在脚本

时间:2016-11-03 09:29:11

标签: javascript jquery payment-gateway keyup

我正在使用支付网关(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,然后在剃须刀付款脚本中传递。

为此我使用了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

1 个答案:

答案 0 :(得分:1)

您需要在更改时删除包含的脚本,并使用新的金额重新包含脚本。

付款网关API DOC link

&#13;
&#13;
$(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>');
  });

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="myInput" value="" />
&#13;
&#13;
&#13;