使用 onload 和 document.getElementById 来填充 HTML 表单

问题描述

我有以下 Javascript 贝宝付款代码 -

onApprove: function(data,actions) {
    return actions.order.capture().then(function(details) {
    window.location.replace("www.mysite.com/success");
    document.getElementById("payment_no").value='1234';
  });
},

一旦付款,这将重定向用户下一页一个带有“payment_no”字段的表单,我想在使用脚本中的值重定向后填写该字段。

目前这不起作用,我认为这是因为页面在尝试发布值之前尚未加载。我已经研究过使用 onload 但就是不明白如何在这个脚本中使用它。有人可以帮忙吗?

这是我的 form.py 以防万一 -

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField(widget= forms.EmailInput(attrs={'id':'email'}))
    payment_no = forms.CharField(max_length=50,widget= forms.TextInput(attrs={'id':'payment_no'}))

    class Meta:
        model = User
        fields = ['email','payment_no','password1','password2']

解决方法

使用 onload 就像使用任何其他 DOM 事件一样。这是我做的一个例子

<script>
  const OnLoadFunction = () =>{
    document.getElementById('form-input').value = "1234";
  }
</script>
<body onload="OnLoadFunction();">
  <form>
    <input type="text" id="form-input"/>
  </form>
</body>

这应该会在加载文档时更改输入字段的值。从代码的外观来看,您似乎正在使用一个函数来完成两项工作。我将使用两个函数,以便您可以在 www.mysite.com/success 加载时调用一个函数

1:改变页面位置

2:操作输入字段