如何根据一天中的时间(Javascript)接收用户名并将其与消息一起显示?

如何根据一天中的时间(Javascript)接收用户名并将其与消息一起显示?,javascript,Javascript,我试图显示用户名,并根据一天中的时间显示一条消息。我创建了一个函数来实现这一点,我使用submit按钮调用了这个函数。但是,当我在网页上单击“提交”时,我会在每条消息后加上“名称”,以便显示用户在表单中输入的名称。我在代码中做错了什么,我现在很困惑。感谢您提供的帮助,我将代码放在下面: <div id="main"><h2>Type your name in here:</h2> <script type="text/javascript"> f

我试图显示用户名,并根据一天中的时间显示一条消息。我创建了一个函数来实现这一点,我使用submit按钮调用了这个函数。但是,当我在网页上单击“提交”时,我会在每条消息后加上“名称”,以便显示用户在表单中输入的名称。我在代码中做错了什么,我现在很困惑。感谢您提供的帮助,我将代码放在下面:

<div id="main"><h2>Type your name in here:</h2>

<script type="text/javascript">
function runfunction()
{
var Datenow = new Date();   
 (Datenow.getHours() < 12 )  {     document.write("Good Morning!"); } else  
if ( Datenow.getHours() >= 12 && Datenow.getHours() <= 17 ) {  document.write("Good Afternoon,'Name'!"); } else   
if ( Datenow.getHours() > 17 && Datenow.getHours() <= 24 ) {     document.write("Good Evening,'Name'!"); } else  
if ( Datenow.getHours() > 24) { document.write("It's pretty late, 'Name', you should probably go to bed!");

}
</script>

<form action="">
<input type="text" name="Name" size="7" value="Name" />

<input type="button" name="process" onclick="runfunction()" value="Submit" />
</form>
</div>
在此处键入您的姓名:
函数runfunction()
{
var Datenow=新日期();
(Datenow.getHours()<12){document.write(“早上好!”);}else
如果(Datenow.getHours()>=12&&Datenow.getHours()17&&Datenow.getHours()24){document.write(“太晚了,'Name',你可能该睡觉了!”);
}

当您单击
中的
时,它会提交
;没有指定的
操作
属性,表单会提交到当前URL,这会导致页面重新加载

要防止出现这种情况,可以在正在调用的函数中使用
event.preventDefault()
(防止默认操作)或
return false

函数runfunction(e){
(e | | Window.event).preventDefault();
var Datenow=新日期(),
currentHour=Datenow.getHours(),
name=document.querySelector('input[name=name]')。值;
如果(当前小时<12){
写下“早上好!”;
}否则
如果(当前小时>=12和当前小时17和当前小时24){
文档。写下(“已经很晚了,+name+“你可能应该去睡觉了!”);
}
}

您的代码几乎没有问题:

  • 加载元素后,需要放置
    脚本
    标记
  • 不要使用
    document.write()
  • 函数
    runfunction()
    没有结尾的花括号
    }
  • 第一个
    if
    语句缺少
    if
    关键字
  • 
    在此处键入您的姓名:
    document.querySelector(“输入[type=button]”)。onclick=function(){
    var name=document.querySelector(“输入[类型=文本]”).value;
    var m=document.getElementById(“消息”);
    var Datenow=new Date().getHours();
    如果(日期现在<12){
    m、 innerHTML=“
    早上好!”+name+“!”; }否则 如果(Datenow>=12&&Datenow 17&&Datenow 24){ m、 innerHTML=“
    已经很晚了,“+name+”,你应该上床睡觉了!”; } }
    您有一些小错误,例如忘记关闭函数。 您可以在单击时返回false,以防止表单提交

    函数runfunction()
    {
    var Datenow=新日期();
    如果(Datenow.getHours()<12){
    写下“早上好!”;
    } 
    如果(Datenow.getHours()>=12&&Datenow.getHours()17&&Datenow.getHours()24){
    文件。写下(“已经很晚了,'名字',你可能应该去睡觉了!”);
    }}
    在此处键入您的姓名:
    
    如果{document.write(“已经很晚了,+name“你可能应该去睡觉了!”);因为这意味着当时钟超过23:59:59时,它会打印出来,反正已经很晚了?你可以使用
    else{document.write('');}
    但是如果{…}
    (没有评估,
    else if.)(此处的评估){…}
    )是一个语法错误,将导致脚本失败。谢谢,巨大的帮助!特别是在返回false之后;一旦用户输入了他们的名字,表单就会消失:)