更新脚本<元素提交表单

Updating a <script> element on form submission

本文关键字:元素 提交 表单 脚本 更新      更新时间:2023-09-26

我使用Stripe进行支付处理,它在<form>元素中使用内联<script></script>,如下所示:

<form action="" method="POST" id="payButton" style="display:none;">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="myprivatekeygoeshere"
    data-amount="4900"
    data-name="Sample Name"
    data-description="We use Stripe for 100% secure payment processing."
    data-image="/agm-128-128.png"
    data-email="THIS IS WHAT I'D LIKE TO CHANGE"
  </script>
</form>

此表单是两部分验证的第2步。第一个获取用户的信息,如姓名、电子邮件地址、位置,并将其保存到我的服务器上。一旦发生这种情况,这个Stripe表单将被打开。

在脚本中,有一个data-email选项。这会自动填充用户的电子邮件地址,并且我想根据用户在表单的step 1中的输入来更新此地址。

使用Javascript或jQuery,有可能实现这一点吗?

类似以下语句的内容:

$('#form1').submit(function(){
  var email = $('#form1 #email').val();
  $('#payButton script').attr('data-email', email);
});

可能重复这个问题,没有适当的解决方案,并且是3年前的问题:jQuery>更新表单提交的内联脚本

答案是,滑稽的/愚蠢的,在问题中-感谢@probackpacker,他让我测试了我发布的虚拟代码,作为一个不能工作的例子。它确实起作用了:

$('#form1').submit(function(){
  var email = $('#form1 #email').val();
  $('#payButton script').attr('data-email', email);
});

正确地针对<script>标记,并允许您更改属性。