【问题标题】:How to make the current time appear in an alert box如何使当前时间出现在警报框中
【发布时间】:2013-07-04 12:09:22
【问题描述】:

如何使当前时间显示在警报框中?我是编程新手,所以我完全迷路了。我正在用 html5 或 javascript 编码。我在这里添加了大部分代码。

这是我的代码:

<script>
    function startTime(){
        var today=Date();
        var h=today.getHours();
        var m=today.getMinutes();
        var s=today.getSeconds(); 
        document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
    }

</script>
<div id="txt"></div>

<h1>What would you like it to say?</h1>

    <p>Commmon Requests:</p>

    <form action="">
    <select name="requests" onchange ="checkIfOther();" id="dropDown1">
    <option value="blank"> </option>
    <option value="good morning sir">Good Morning Sir</option>
    <option value="current time">Current Time</option>
    <option value="other">Other</option>    
    </select>
    </form>

    </p>
<button onclick="mySubmit()" value>Submit</button>

    <div id="other" style="display:none">
        <br><br><label>Optional Request: </label><input type="text" id="otherText"/>
    </div>

</body>
</html>

<script>
    function checkIfOther(){
        a=document.getElementById("dropDown1");        
        if(a.value == "other"){           
            document.getElementById("other").setAttribute("style","display:inline");
        }
        else{
            document.getElementById("other").setAttribute("style","display:none");
            }
    }   
</script>

<script type="text/javascript">
    function mySubmit(){
        var x=document.getElementById("dropDown1");
        if(x.value == "other"){
            alert("You have chosen: " + otherText.value); 
        }
        else if(x.value == "current time"){
            alert("The current time is: " + 'txt'.value); //what do I do here?
        }
        else{   
            alert("You have chosen: " + x.options[x.selectedIndex].text);
        }   
    }   
</script>

我做错了吗?

【问题讨论】:

  • document.getElementById('txt').innerHTML 而不是 'txt'.value。 innerHTML 可用于设置和获取值。
  • 'txt'.value //what do I do here? - 我们也想知道。为什么不直接将return 来自startTime 的字符串调用,然后将结果放入警报中?
  • 看看@momentjs.com
  • 提供的代码不完整
  • @user2542058 脚本不应位于&lt;body&gt;&lt;html&gt;标签之外。相反,您应该将&lt;html&gt; 标记之外的脚本附加到&lt;body&gt; 标记

标签: javascript html time


【解决方案1】:

首先,您的 HTML 完全搞砸了。验证它。

至于代码本身,startTime 已损坏。它需要new Date()

function startTime(){
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds(); 
  return [ h, m, s ].join(':')
}

要将其放入警报框中,您可以这样做:

alert(startTime());

如果你想把它放在像&lt;div id="txt"&gt;&lt;/div&gt; 这样的元素中,你可以这样做:

document.getElementById('txt').innerHTML = startTime();

【讨论】:

    【解决方案2】:

    你可以这样做。

    ...
    else if(x.value == "current time"){
        startTime();
        alert("The current time is: " + document.getElementById('txt').innerHTML);
    ...
    

    【讨论】:

      【解决方案3】:

      创建一个函数getTime,返回当前时间字符串:

      function getTime(){
          var today = new Date();
          var h = today.getHours();
          var m = today.getMinutes();
          var s = today.getSeconds(); 
          return h+":"+m+":"+s; 
      }
      

      然后使用它:

      …
      else if(x.value == "current time"){
          alert("The current time is: " + getTime());
      }
      …
      

      如果您仍然需要startTime 功能,您也可以在那里使用它:

      function startTime() {
          document.getElementById('txt').innerHTML = getTime();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多