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