Javascript无法正常工作

时间:2014-01-19 11:27:40

标签: javascript

问题在于,当我把正确的小时和不正确的分钟时,它总会让我回答:“糟糕”和“非常好”。我不知道出了什么问题所以你能帮帮我吗。

我有以下html和JS:

<!DOCTYPE html>
<html>
   <body>
       <script language="Javascript">
          var d = new Date();
          var h = d.getHours();
          var h1 = document.forms["INICI"].starthour.value;
          var m = d.getMinutes();
          var m1 = document.forms["INICI"].startminut.value;

          function myHour() {
               if ( h==h1 ) {
                   document.write("nice"+"<br>");
               } else {
                   document.write("bad"+"<br>");
               }
          }

          function myMinut() {
               if ( m1==m ){
               document.write("very nice"+"<br>");
               } else {
               document.write("very bad"+"<br>")
              }
          }
          </script>

          <form name="INICI">
          start hour: <input name="starhour"/> <br />
          <br>
          start minut: <input name="startminut"/> <br />
          <input id="insert1" 
                 onclick="myHour(); myMinut();" 
                 type="submit" 
                 value="Click" />
          </form>
    </body>
</html>

(我是新来的......对不起,如果我的帖子很糟糕的话)

3 个答案:

答案 0 :(得分:1)

您在页面加载时设置变量,因此它们将始终相同。

如果你把它们放在功能中,这可以解决

var d = new Date();
var h = d.getHours();
var m = d.getMinutes();


function myHour()
{
    var h1 = document.forms["INICI"].starthour.value;
    if (h==h1){
     document.write("nice"+"<br>");
    }
    else{
        document.write("bad"+"<br>");
    }
}

function myMinut()
{
    var m1 = document.forms["INICI"].startminut.value;
    if (m1==m){
        document.write("very nice"+"<br>");
    }
    else{
        document.write("very bad"+"<br>")
    }
}

答案 1 :(得分:1)

我改进了你的代码。这是它的工作版本。

<!DOCTYPE html>
<html>
<body>
    <form name="INICI">
        start hour:
        <input name="starthour" />
        <br />
        <br>
        start minut:
        <input name="startminut" />
        <br />
        <input id="insert1" onclick="EvaluateResults()" type="submit" value="Click" />
    </form>

    <script language="Javascript">
        function EvaluateResults() {
            var d = new Date();
            var h = d.getHours();
            var h1 = document.forms["INICI"].starthour.value;
            var m = d.getMinutes();
            var m1 = document.forms["INICI"].startminut.value;

            console.log(h + ' ' + h1);


            if (h == h1) {
                document.write("nice" + "<br>");
            }
            else {
                document.write("bad" + "<br>");
            }

            if (m1 == m) {
                document.write("very nice" + "<br>");
            }
            else {
                document.write("very bad" + "<br>")
            }


        }
    </script>
</body>
</html>

您的代码出了什么问题,您正在花时间加载和执行JavaScript文件,而不是按下按钮时。我为解决你的问题所做的是我刚刚创建了一个方法并转移了获取时间的代码。

答案 2 :(得分:0)

你有一个错字:

<input name="starhour"/>

所需

<input name="starthour"/>

还将脚本标记放在正文的末尾