2014-01-19 262 views
2

問題是,當我放置正確的小時和不正確的分鐘數時,它總是返回我:「壞」和「非常好」。我不知道發生了什麼問題,所以請你幫助我。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> 

(我是新來的....對不起,如果我做這個職位非常糟糕)

+0

你更新你的javascript變量從html元素值出去檢查如果html元素已經加載。將您的腳本移到身體標記的末尾。 –

+0

不要忘記標記正確的答案。對於您的個人資料,它會更好地標記正確的答案 –

+0

很久以前,腳本元素的語言屬性已被棄用,並從HTML5中刪除。只需使用''。 – RobG

回答

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文件,而不是按下按鈕時。我做了什麼來解決你的問題,我只是創建了一個方法,並轉移了獲取時間的代碼。

0

你有一個錯字:

<input name="starhour"/> 

所需

<input name="starthour"/> 

而且要把Y我們的腳本標記到主體的末尾

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>") 
    } 
}