javascript - 无法在JS中隐藏表单

标签 javascript html forms

尝试在 Javascript 中隐藏表单时遇到此问题。

这是我的 HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Timer</title>
    <link rel="stylesheet" href="style.css">
    <script src="javascript.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css'>
</head>

<body>
    <div id="wrapper">  
        <div id="time">00:00:00</div>   
        <form id="myform">
            <input type="text" autocomplete="off" id="box" placeholder="00:00:00" onkeypress="checkBox(event)">
        </form>
    </div>
</body>
</html>

这是我的 JS:

function timer(time) {
    document.getElementById("myform").style.display = "none";
    document.getElementById("time").style.display = "inline";

    var interval = setInterval(function () {    
        if (time == 0) {        
            time = 299;     
        } else {        
            var newTime = timeFormat(time);     
            document.getElementById("time").innerHTML = newTime;        
            document.title = newTime;       
            time--;     
        }
    }, 1000);
}

function checkBox(event) {
    if (event.keyCode == 13) {
        var string = document.getElementById("box").value;
        var numTest = string;

        if (string.length != 0) {

            var numOfColons = string.split(":").length - 1;
            var hr = 0;
            var min = 0;
            var sec = 0;

            if (numOfColons == 2) {     
                numTest = numTest.replace(":", "");
                numTest = numTest.replace(":", "");     
                hr = string.substring(0, string.indexOf(":"));
                string = string.replace(string.substring(0, string.indexOf(":")+1), "");
                min = string.substring(0, string.indexOf(":"));
                string = string.replace(string.substring(0, string.indexOf(":")+1), "");
                sec = string.substring(0, string.length);
            } else if (numOfColons == 1) {          
                numTest = numTest.replace(":", "");         
                min = string.substring(0, string.indexOf(":"));
                string = string.replace(string.substring(0, string.indexOf(":")+1), "");
                sec = string.substring(0, string.length);   
            } else if (numOfColons == 0) {          
                sec = string;       
            }

            hr = parseInt(hr);
            min = parseInt(min);
            sec = parseInt(sec);

            if(/^\d+$/.test(numTest)) {     
                var totalSec = hr*3600 + min*60 + sec;
                if (totalSec > 0) {             
                    timer(totalSec);            
                }
            }
        }
    }
}

function focus() {
    document.getElementById("box").focus();
}

function timeFormat(time) {
    var sec = time % 60;
    var totalMin = time / 60;
    var min = Math.floor(totalMin % 60);

    var string = "";

    if (min == 0 && sec < 10) {
        string = "0:0" + sec;
    } else if (min == 0) {
        string = "0:" + sec;
    } else if (sec < 10) {
        string = min + ":0" + sec;
    } else {
        string =  min + ":" + sec;
    }

    return string;
}

请注意,我没有使用按钮来触发表单提交,我只是使用 onkeypress 事件来检测用户是否按下了 Enter 按钮(我想要一个更简洁的设计)。每当调用计时器函数时,文本框都会闪烁,就像关闭一秒钟,然后立即重新打开。我不知道问题是什么。我在控制台中也没有收到任何错误。

最佳答案

我不确定您想要实现什么目标,但是通过查看您的代码,在重新加载页面时点击输入结果,因此我无法看到结果。

但是,我建议您使用 jQuery 来隐藏显示结果,因为您已经在调用脚本

    $('#myform').hide();
    $('#time').show();

关于javascript - 无法在JS中隐藏表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297245/

相关文章:

html - 浏览器填充的表单输入文本的样式不同,使输入字段不可读

javascript - 使用 primefaces 和 oncomplete 将表单目标更改为 _blank

javascript - Appcelerator Titanium(错误 - 应用程序安装程序异常进程终止。进程退出值为 1)

javascript - jquery isotope 插件容器高度不会随着 isotope-item 增长(与 masonry 相同)

html - 您如何让 simple_form 将基类用于 url 而不是子类?

html - 在 HTML 中设置 ul 标签的颜色。

html - 为什么在谷歌调试器工具中检查时图像图形超出其布局?

javascript - 如何从搜索按钮触发 AJAX

javascript:从 GM 脚本调用嵌入式函数

javascript - Jquery domready 是如何工作的?