尝试设置paypal按钮,以便在特定日期(2017年12月)结束重复捐赠。我们希望订阅长度是动态的(在2个月内注册的人不会像现在注册的人那么多,直到2017年到2017年才会有更少的时间)。我是编程新手,但我认为我已经设置了js代码来确定剩下的几个月。我的问题是如何将该变量(numberOfMonths)输入到html输入标记中。
我需要以某种方式将变量放在行中的输入名srt
的值中:
<input type="hidden" name="srt" value="MyVariable">
现在完整的代码是:
<script>
var date1=new Date(); // blank uses current date
var date2=new Date(2017,11,31); //months 0 based in js so actually dec
var year1=date1.getFullYear();
var year2=date2.getFullYear();
var month1=date1.getMonth();
var month2=date2.getMonth();
if(month1===0){ //Have to take into account
month1++;
month2++;
}
var numberOfMonths;
numberOfMonths=(year2-year1)*12+(month2-(month1-1));
return numberOfMonths;
</script>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<!--You will need to set the email to your PayPal email or Secure Merchant ID -->
<input type="hidden" name="business" value="TEZ9LZK9B36X8">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="Monthly Donation">
<input type="hidden" name="item_number" value="1234">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="src" value="1">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="bn" value="PP-SubscriptionsBF:btn_subscribeCC_LG.gif:NonHosted">
<input type="hidden" name="srt" value="35">
<input type="hidden" name="t3" value="M">
<table>
<tr><td>Enter Your Donation Amount</td></tr>
<tr><td>$ <input type="text" name="a3" maxlength="60"></td></tr>
</table>
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0"
name="submit" alt="PayPal - The safer, easier way to
pay online!">
<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
答案 0 :(得分:3)
首先,在脚本中的函数之外有一个return语句。其次,如果你正在使用vanilla javascript(没有jquery),你可以给input
一个id并使用document.getElementById来选择input
并更改它的值。 input
可以是:
<input type="hidden" name="srt" id="srtVal" value="MyVariable">
和javascript:
function calcuateMonthsRemaining(){
var date1=new Date(); // blank uses current date
var date2=new Date(2017,11,31); //months 0 based in js so actually dec
var year1=date1.getFullYear();
var year2=date2.getFullYear();
var month1=date1.getMonth();
var month2=date2.getMonth();
if(month1===0){ //Have to take into account
month1++;
month2++;
}
return (year2-year1)*12+(month2-(month1-1));
}
document.getElementById('srtVal').value = calculateMonthsRemaining();
请注意,您应该在html表单下方的script
标记中移动javascript,以便在尝试修改其值之前加载input
元素。
答案 1 :(得分:0)
您应该添加id属性:
<input type="hidden" name="srt" value="MyVariable" id="numberOfMonths" />
然后:
<script>
document.getElementById("numberOfMonths").value = (function(){
var date1 = new Date(),
month1 = date1.getMonth(),
year1 = date1.getFullYear(),
date2 = new Date(2017,11,31),
month2 = date2.getMonth(),
year2 = date2.getFullYear();
if(month1===0){
month1++;
month2++;
}
return (year2-year1)*12+(month2-(month1-1));
}());
</script>