最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to make the current time appear in an alert box - Stack Overflow

programmeradmin3浏览0评论

How does one make the current time appear in an alert box? I'm new to programming, so I'm pletely lost. I'm coding in html5 or javascript. I've added most of my code here.

Here's my code:

<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>

Am I doing something wrong?

How does one make the current time appear in an alert box? I'm new to programming, so I'm pletely lost. I'm coding in html5 or javascript. I've added most of my code here.

Here's my code:

<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>

Am I doing something wrong?

Share Improve this question edited Jul 4, 2013 at 12:24 Artemis F asked Jul 4, 2013 at 12:09 Artemis FArtemis F 723 gold badges4 silver badges19 bronze badges 9
  • document.getElementById('txt').innerHTML instead of 'txt'.value. innerHTML can be used for both setting and getting the value. – VirtualTroll Commented Jul 4, 2013 at 12:12
  • 'txt'.value //what do I do here? - We'd like to know as well. Why don't you just return the string from startTime, call that, and put the result into the alert? – Bergi Commented Jul 4, 2013 at 12:13
  • have a look @ momentjs. – Thomas Junk Commented Jul 4, 2013 at 12:15
  • Inplete code provide though – Dhaval Marthak Commented Jul 4, 2013 at 12:15
  • 1 @user2542058 scripts shouldn't be outside the <body> and <html>tag. instead you should append scripts outside the <html> tag to the <body> tag – Jay Harris Commented Jul 4, 2013 at 12:31
 |  Show 4 more ments

3 Answers 3

Reset to default 2

First, your HTML is pletely screwed. Validate it.

As for the code itself, startTime is broken. It needs 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(':')
}

and to get it into an alert box you can just do:

alert(startTime());

If you want to put it in an element like <div id="txt"></div> you can do:

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

You can do something like this.

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

Make a function getTime that returns the current time string:

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

Then use that:

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

If you still need the startTime function, you can use it there as well:

function startTime() {
    document.getElementById('txt').innerHTML = getTime();
}
发布评论

评论列表(0)

  1. 暂无评论