回 帖 发 新 帖 刷新版面

主题:帮我看看这段javascript怎么改?

原来的代码(就是一个论坛的协议部分,需要9秒钟后才能点击确定):
<form name="bbrules" method="post" action="register.php">
<input class="button" type="submit" name="rulesubmit" value="同 意" style="height: 23px">
</form>

<script type="text/javascript">
var secs = 9;
var wait = secs * 1000;
document.bbrules.rulesubmit.value = "同 意(" + secs + ")";
document.bbrules.rulesubmit.disabled = true;
for(i = 1; i <= secs; i++) {
        window.setTimeout("update(" + i + ")", i * 1000);
}
window.setTimeout("timer()", wait);
function update(num, value) {
        if(num == (wait/1000)) {
                document.bbrules.rulesubmit.value = "同 意";
        } else {
                printnr = (wait / 1000) - num;
                document.bbrules.rulesubmit.value = "同 意(" + printnr + ")";
        }
}
function timer() {
        document.bbrules.rulesubmit.disabled = false;
        document.bbrules.rulesubmit.value = "同 意";
}
</script>

我的网页不是用按钮来实现确定的,是用image
我把这段代码改成下面的样子:
<form name="regtype" method="post" action="reg.asp">
 <input type="image" name="Submitbutton" value="submit" src="buttonqr.jpg">
</form>
<script type="text/javascript">
var secs = 9;
var wait = secs * 1000;
document.regtype.Submitbutton.src = "buttonqr" + secs + ".jpg";
document.regtype.Submitbutton.disabled = true;
for(i = 1; i <= secs; i++) {
        window.setTimeout("update(" + i + ")", i * 1000);
}
window.setTimeout("timer()", wait);
function update(num, value) {
        if(num == (wait/1000)) {
                document.regtype.Submitbutton.src="buttonqr.jpg";
        } else {
                printnr = (wait / 1000) - num;
                document.regtype.Submitbutton.src ="buttonqr" + printnr + ".jpg";
        }
}
function timer() {
        document.regtype.Submitbutton.disabled = false;
        document.regtype.Submitbutton.src="buttonqr.jpg";
}
</script>


但是这样每次都提示:
错误: 'document.regtype.Submitbutton' 为空或不是对象
我不太懂javascript,很多用法都不太明白,希望知道的多帮忙指导,谢谢了

回复列表 (共3个回复)

沙发

具体可以按下面去做,不过前提是你必须做10张按钮图片,我用的是0-9命名的10张图片,0是时间过完能点击的同意,1-9是对应的不能点击的1-9秒的图片
通过这个网址可以看到效果http://www.51zsm.cn/test/1.html,由于网速的原因最好做成把图片预载入。
<form action="" method="post" name="form1" id="form1">
  <input name="A" type="image" id="A" src="0.jpg" />
</form>

<script type="text/javascript">
var secs = 9;
var wait = secs * 1000;
document.getElementById("A").src="9.jpg";
document.getElementById("A").disabled=true;
for(i = 1; i <= secs; i++) {
        window.setTimeout("update(" + i + ")", i * 1000);
}
window.setTimeout("timer()", wait);
function update(num, value) {
        if(num == (wait/1000)) {
                document.getElementById("A").src="0.jpg";
        } else {
                printnr = (wait / 1000) - num;               
                document.getElementById("A").src=printnr+".jpg";
        }
}
function timer() {
        document.getElementById("A").disabled=false;        
        document.getElementById("A").src="0.jpg";
}
</script>

板凳

为什么原来的例子里面可以用表格的名字,到我这里就不能用表格的名字而要用id了呢?能不能稍微解释一下,谢谢了。

3 楼

关于这个问题我也不是太清楚,我做这个的时候也常碰到这种问题,用不了我就换一种方法去试,反正能用就行。必竟咱不是专业学jS的,呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册