我正在制作一个嵌入了小部件的捐赠表单。该小部件将用户选入我们的移动捐赠计划,该计划使用独立软件,而不是我们的捐赠形式。我被要求查看我们是否可以使小部件不可见,但将表单数据转移给它并在用户提交捐赠表单时提交。我已经遇到了将表单数据转移到小部件的问题。如何使用Javascript自动填充窗体输入的窗口小部件?
表单应该从表单中获取捐助者的名字,姓氏和电话号码,然后在单击复选框时自动填充小部件,指出用户想要接收移动更新。
下面是我试过的,但它似乎并没有工作。该表单的代码是相对较长的,所以我只包含了相关的字段,但这里是链接到完整表单:http://support.ddfl.org/site/Donation2?df_id=9442&mfc_pref=T&9442.donation=form1
我对JavaScript很陌生,所以我不完全确定这是否可能。只是一个fyi,我还包含了控制台语句,所以我可以看到这些值是否工作。
<input type="text" name="billing_first_namename" id="billing_first_namename"
<input type="text" name="billing_last_namename" id="billing_last_namename"
<input type="text" name="donor_phonename" id="donor_phonename"
<input type="checkbox" name="mcoptin" onclick="FillMobileCause(this.form)" value="this.form"> Opt in to receive mobile updates.
<a href="//www.mobilecause.com/feature/subscription-widget" id="powered-by-mobilecause">Mobile messaging powered by Mobilecause</a><script>!function(d,s){var s=d.createElement("script"),h=(document.head||d.getElementsByTagName('head')[0]);s.src="https://app.mobilecause.com/public/messaging_widgets/q71xd/source";h.appendChild(s);}(document);</script>
<script>
function FillMobileCause(f){
if(f.mcoptin.checked == true){
console.log(f.billing_first_namename.value);
console.log(f.billing_last_namename.value);
console.log(f.donor_phonename.value);
if(f.billing_first_namename.value.length>=1){
f.firstname.value = f.billing_first_namename.value;
}else {
f.firstname.value = '';
}
if(f.billing_last_namename.length>=1){
f.lastname.value = f.billing_last_namename.value;
}else{
f.lastname.value = '';
}
if(f.donor_phonename.length>=1){
f.mobilenumber.value = f.donor_phonename.value;
}else{
f.mobilenumber.value = '';
}
console.log(f.firstname.value);
}
}
</script>
请让我知道,如果我离开了重要的细节。这也是我的第一个StackOverflow帖子。 ;)
我很感谢您的帮助!
你的意思是小部件生活在'//www.mobilecause.com/feature/subscription-widget'这个iis不是你的服务器,如果是这样的话,就忘了它,你需要在服务器上用curl或类似的方法来做 - 除非它们有一个支持CORS的API – mplungjan