2016-05-02 3 views
0

Если я напишу код, как показано ниже, кнопка будет видна для полосы модальной.Как я могу поместить jQuery в атрибут <script>?

<script 
    src="https://checkout.stripe.com/checkout.js" class="stripe-button" 
    data-key="pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c" 
    data-amount="2000" 
    data-name="Oyon Shop" 
    data-description="Thank you for puchasing!" 
    data-image="/img/demo.png" 
    data-locale="auto"> 
</script> 

Моя ценность данных - $('#amount').val(). Поэтому я сделал следующее.

<script> 
    $("<script>", { 
     src:"https://checkout.stripe.com/checkout.js", 
     class: "stripe-button", 
     "data-key": "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c", 
     "data-amount": $('#amount').val(), 
     "data-name": "Oyon Shop", 
     "data-description": "Thank you for puchasing!", 
     "data-image": "/img/demo.png", 
     "data-locale": "auto", 
    }).appendTo("head"); 
</script> 

Но после этого кнопка оплаты полосы не отображается. Не могли бы вы помочь мне найти ошибку?

ответ

0

Вы действительно можете сделать это с помощью appendTo таким образом:

$("<script>", { 
    src:"https://checkout.stripe.com/checkout.js", 
    class: "stripe-button", 
    "data-key": "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c", 
    "data-amount": $('#amount').val(), 
    "data-name": "Oyon Shop", 
    "data-description": "Thank you for puchasing!", 
    "data-image": "/img/demo.png", 
    "data-locale": "auto", 
}).appendTo("head"); 

Или используя традиционный способ:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = 'https://checkout.stripe.com/checkout.js'; 
script.setAttribute('class', "stripe-button"); 
script.setAttribute("data-key", "pk_test_11a6LFgOQ9rZ3d54Qd0uBF8c"); 
script.setAttrubute("data-amount", document.querySelector('#amount').value); 
script.setAttribute("data-name", "Oyon Shop"); 
script.setAttribute("data-description", "Thank you for puchasing!"); 
script.setAttribute("data-image", "/img/demo.png"); 
script.setAttribute("data-locale", "auto"); 

document.getElementsByTagName('head')[0].appendChild(script); 
+0

Таким образом, я должен написать код, как и раньше: правый? –

+0

Да, я принимаю это. Спасибо за решение. Не могли бы вы помочь мне по другому вопросу? @Praveen Kumar –

+0

@SalehAhmadOyon Скажите мне URL, если вы уже разместили его. –

0

Вы можете задница значение атрибута в тег сценария, как это, Попробуйте это:

$(document).ready(function() { 
    $("script").attr("data-amount",$('#amount').val()) 
}); 
+3

Запрос уже отправлен на сервер полосы, к тому времени. Это совершенно неправильно. Вы понимаете? –

0
  • Вы можете иметь этот код

    $("script").attr("data-amount",$('#amount').val()) 
    

    внутри вашего собственного пользовательского метода.

  • $ ('# amount'). Val() может не иметь значения, к моменту вызова метода .ready().

  • Так что имеет смысл поставить его в любых функций, которые вы определили, так что вы можете иметь, что в месте, где вы уверены, что $ («# сумма»). Знач() будет иметь желаемое значение тогда.

+0

Как я уже говорил в предыдущих комментариях, запрос уже отправлен на сервер полосы, к тому времени, когда вы поместите тег '