做一个等待5秒,显示确认按钮。

stan1 2015-07-08 06:27:41
<div>
<input type="submit" id="submit" value="测试" />
</div>

<script>
var timerc = 5; //全局时间变量(秒数)
function add(){
if (timerc > 0) {


$("#submit").val('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10));

$("#submit").attr("disabled", true);
timerc--;
setTimeout("add()", 1000); //设置1000毫秒以后执行一次本函数

}
else {
$("#submit").attr("disabled", false);
$("#submit").val('确认');
};
};
add(); //首次调用add函数
</script>

按钮类型是input submit循环只能执行一次,类型是button就没有问题,循环执行完毕。
这是为何?
...全文
363 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
stan1 2015-07-09
  • 打赏
  • 举报
回复
感谢,看了jquery.mobile-1.4.5.js里面
input button和button处理方式不一样。
jquery mobile因为要改变显示效果,都对页面输出做了改动。
input button改为div输出+一个非常小的看不到的input button,而button只是增加了class类别。
所以用id对按钮操作的时候,input button第一次是在div输出前改动,就只能看到第一次修改效果,然后就看不到了。
普通button就很正常。
看来用jquery mobile的时候要尽量少用input 类型。
结了。
香蕉猪 2015-07-09
  • 打赏
  • 举报
回复


<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
</head>
<body>
 <div>
    <input type="submit"  id="submit1" value="测试1" />
     <button id="button1">测试2</button>
    </div>
<script>
    var timerc = 5; //全局时间变量(秒数)
    function add() {
        if (timerc > 0) {
            $("#submit1").val('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10));
            $("#button1").html('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10));
            $("#submit1").attr("disabled", true);
            $("#button1").attr("disabled", true);
            timerc--;
            setTimeout("add()", 1000); //设置1000毫秒以后执行一次本函数
        }
        else {
            $("#submit1").attr("disabled", false);
            $("#button1").attr("disabled", false);
            $("#submit1").val('确认');
            $("#button1").html('确认');
        };
    };
    add(); //首次调用add函数
</script>
</body>
</html>

这样的效果不对吗???楼主什么浏览器,,,我谷歌看很正常啊。。。。
stan1 2015-07-09
  • 打赏
  • 举报
回复
循环是正常的,就是submit按钮值只能变化一次。后面循环生效,但是也没有变化。
stan1 2015-07-09
  • 打赏
  • 举报
回复
引用 5 楼 gy127132060 的回复:
我也懒得看了,,,楼主发上的代码果断是不可用的,,,代码不全。。。 另,循环如果真没执行够,,,应该是值对应不上循环了。。。。楼主弹出看过吗???
<script src="Scripts/jquery.js"></script> <script src="Scripts/jquery.mobile-1.4.5.js"></script> <link href="Scripts/jquery.mobile-1.4.5.min.css" rel="stylesheet" /> 我去,好像是jquery.mobile的关系,不引用就正常。。。。
香蕉猪 2015-07-09
  • 打赏
  • 举报
回复
我也懒得看了,,,楼主发上的代码果断是不可用的,,,代码不全。。。 另,循环如果真没执行够,,,应该是值对应不上循环了。。。。楼主弹出看过吗???
stan1 2015-07-09
  • 打赏
  • 举报
回复
引用 2 楼 wuqinfei_cs 的回复:

<!DOCTYPE html>
<html lang="en">

   </script>
</body>

</html>
你运行了么?我运行后,2个按钮都没变化。。 <body> <div> <input type="submit" id="submit1" value="测试1" /> <button id="button1">测试2</button> </div> <script> var timerc = 2; //全局时间变量(秒数) function add() { if (timerc > 0) { $("#submit1").val('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10)); $("#button1").html('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10)); $("#submit1").attr("disabled", true); $("#button1").attr("disabled", true); timerc--; setTimeout("add()", 1000); //设置1000毫秒以后执行一次本函数 } else { $("#submit1").attr("disabled", false); $("#button1").attr("disabled", false); $("#submit1").val('确认'); $("#button1").html('确认'); }; }; add(); //首次调用add函数 </script> </body> 再发一次。
stan1 2015-07-09
  • 打赏
  • 举报
回复
引用 1 楼 kongwei521 的回复:
type=button 就单纯是按钮功能 ,不写JS之类的,按了也没什么反应。 type=submit 是发送表单,就是提交整个页面 from
我只是打开页面倒计时改变按钮的显示内容,没点击,跟提交没关系的。
Giberson1 2015-07-09
  • 打赏
  • 举报
回复

<div>
    <input type="submit"  id="submit" value="测试" />
    </div>

<script>
    var timerc = 5; //全局时间变量(秒数)
        function add(){ 
        if (timerc > 0) { 
            
  
            $("#submit").val('等待' + Number(parseInt(timerc % 60 / 10)).toString() + (timerc % 10));

            $("#submit").attr("disabled", true);
            timerc--; 
            setTimeout("add()", 1000); //设置1000毫秒以后执行一次本函数

        }
        else {
            $("#submit").attr("disabled", false);
            $("#submit").val('确认');
        };
    };
    add(); //首次调用add函数

    $("#submit").click(function(){timerc = 5;add();});   //新增的代码

</script>
Giberson1 2015-07-09
  • 打赏
  • 举报
回复
解决你的问题很简单,在你的基础上再加一行代码就行。
Giberson1 2015-07-09
  • 打赏
  • 举报
回复
我先解释下你代码的问题。 你做了一个递归,到了最后timerc=0了, 所以再次点击,也不会再进

if (timerc > 0) { 
 //... ...
}
这个判断了。 所以只能执行一次,如果你想让你的代码生效,必须想办法让,再次点击按钮后,除非一个函数, 给赋值timerc=5
forwardNow 2015-07-08
  • 打赏
  • 举报
回复

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <div>
        <input type="button" id="button" value="确认" disabled="disabled"/>
        <br>
        <input type="submit" id="submit" value="提交" disabled="disabled"/>
    </div>
    <script>

    var counter = 3; 

    // ---------------------------------

    ( function( counter ){

        var button = document.getElementById( "button" ); 
        var originalValue = button.value;
        var intervalId = null;

        intervalId = setInterval( 

                        function(){

                            if ( counter <= 0 ) {
                                button.disabled = false;
                                button.value = originalValue;
                                clearInterval( intervalId );
                                return;
                            }
                            button.value = originalValue + "(" + counter + ")";
                            counter--;

                        }, 1000 );

    } )( counter );


    // ---------------------------------

     /**
     * 在等待指定的时间后,开始重复调用某个函数
     * @param f 在未来要调用的函数
     * @param start start毫秒后开始调用
     * @param interval  如果设置了interval,则使用setInterval调用f
     * @param end end毫秒后结束setInterval对f的调用,如果没有传入end,则调用不会停止
     */
    function invoke(f, start, interval, end) {
        if (!start) start = 0;
        if (arguments.length <= 2) {
            setTimeout(f, start);
        } else {
            setTimeout(repeat, start);
            function repeat() {
                var h = setInterval(f, interval);
                if (end) {
                    setTimeout( function(){ clearInterval(h); }, end );
                }
            }
        }
    }


    ( function( counter ){

        var button = document.getElementById( "submit" ); 
        var originalValue = button.value;

        invoke( function(){

                    if ( counter <= 0 ) {
                        button.disabled = false;
                        button.value = originalValue;
                        return;
                    }
                    button.value = originalValue + "(" + counter + ")";
                    counter--;

                }, 0, 1000, (counter + 1) * 1000 + 100);

    } )( counter );

    </script>
</body>

</html>
蝶恋花雨 2015-07-08
  • 打赏
  • 举报
回复
type=button 就单纯是按钮功能 ,不写JS之类的,按了也没什么反应。 type=submit 是发送表单,就是提交整个页面 from
实现功能 提交按钮功能: 点击提交按钮的时候都会弹出模态框,但是有不同的状态: 审核状态未通过:弹出未通过理由的input输入框,模态框中除了取消和确定按钮,新增确定并保存医院的按钮 审核状态已通过:如果新增医院的经纬度没有填写,会提示填写经纬度,填写之后点击提交按钮,模态框中显示确定和取消按钮 审核状态待审核:模态框中显示确定和取消按钮 添加医院的html代码:

87,972

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧