将js变量添加到html输入标记

时间:2014-10-23 22:52:15

标签: javascript html paypal

尝试设置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>

2 个答案:

答案 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>