2012-07-26 74 views
0

我想在我的HTML页面中使用倒计时这样的脚本使用一个倒计时脚本多个倒计时

 var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") 

function countdown(yr,m,d,idCountdown){ 
    var theyear=yr; 
    var themonth=m; 
    var theday=d; 
    var today=new Date(); 
    var todayy=today.getYear(); 
    if (todayy < 1000) 
     todayy+=1900 
    var todaym=today.getMonth(); 
    var todayd=today.getDate(); 
    var todayh=today.getHours(); 
    var todaymin=today.getMinutes(); 
    var todaysec=today.getSeconds(); 
    var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec; 
    var futurestring=montharray[m-1]+" "+d+", "+yr; 
    var dd=Date.parse(futurestring)-Date.parse(todaystring); 
    var dday=Math.floor(dd/(60*60*1000*24)*1); 
    var dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1); 
    var dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1); 
    var dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1); 
    var dag = "dagen"; 

    if(dday==0&&dhour==0&&dmin==0&&dsec==1){ 
     document.getElementById(idCountdown).value=current; 
     return; 
    } 
    else if(dday<=1) { 
     dag = 'dag'; 
    } 
    document.getElementById(idCountdown).value=dday+ ' ' + dag + ' ' +dhour+" uur "+dmin+" min "+dsec+" sec"; 
    setTimeout(function(){countdown(theyear,themonth,theday,idCountdown);}, 1000); 
} 

我会有这样的

<input name="aktie1" type="text" class="countdownTekst" size="27" readonly="readonly"> 
<input name="aktie2" type="text" class="countdownTekst" size="27" readonly="readonly"> 

然后,我用它来使用文本框功能

countdown(2012,7,30, 'aktie1') 

最后一个是textfield的ID。但是当我这样做,我会得到一个错误

document.forms.count.idCountdown.value is undefined 

如何获得该函数中的文本字段的id?

回答

1

您需要访问这样的输入:document.forms.count[idCountdown].value

编辑:这拨弄工作http://jsfiddle.net/Fy2FM/4/。更大的问题是你没有用var yourvar声明变量,这使变量成为全局对象的一部分。正因为如此,你在倒计时中总是看到相同的结果,因为实际上你正在访问相同的变量。

+0

感谢。当我这样做formfields加载的日子等,但它不再倒数了,我得到这个错误在FB:TypeError:document.forms.count [idCountdown]是undefined – 2012-07-26 08:38:24

+0

@RickWeller也许问题在这里:'setTimeout( “倒数(今天,月,日)”,1000)'。试试这个: 'setTimeout(function(){countdown(theyear,themonth,theday,idCountdown);},1000);' – Vithozor 2012-07-26 08:41:49

+0

这似乎是问题所在。只有当我这样做,它会加载所有的倒计时,但是当它开始计算它将只使用aktie2日期:( – 2012-07-26 08:47:12

0

凡在此脚本,例如添加具体时间为:3:44

<script language="javascript">countdown(2016,6,20,15:44 'aktie1')</script>