涉及表单和警报的简单JavaScript问题
我正在尝试制作一个包含用户名的表单,当按下submit按钮时,会显示一个警告,说早上好、下午好或晚上好(取决于时间)。我觉得我离这很遥远,但我就是无法让它工作,以下是相关的代码片段:涉及表单和警报的简单JavaScript问题,javascript,forms,xhtml,alerts,Javascript,Forms,Xhtml,Alerts,我正在尝试制作一个包含用户名的表单,当按下submit按钮时,会显示一个警告,说早上好、下午好或晚上好(取决于时间)。我觉得我离这很遥远,但我就是无法让它工作,以下是相关的代码片段: <script type="text/javascript"> <!-- function say_hello() { var date = new Date(); var time = date.getHours(); var name
<script type="text/javascript">
<!--
function say_hello() {
var date = new Date();
var time = date.getHours();
var name = document.forms["hello"]["name"].value;
if (time < 12) {
alert ("Good morning, "+name+"!");
}
else if (time > 12 && time < 18) {
alert ("Good afternoon, "+name+"!")
}
else {
alert ("Good evening, "+name+"!")
}
);
}
// -->
</script>
以及HTML:
<form name="hello" action="">
<p>
What is your name?
<input type="text" name="name" size="10">
</input>
</p>
<p>
<input type="button" name="Submit" onclick="say_hello()" value="Receive Personal Message!">
</input>
</p>
</form>
你的名字叫什么?
谢谢D您的javascript中有语法错误。“;”是不必要的
function say_hello() {
var date = new Date();
var time = date.getHours();
var name = document.forms["hello"]["name"].value;
if (time < 12) {
alert ("Good morning, "+name+"!");
}
else if (time > 12 && time < 18) {
alert ("Good afternoon, "+name+"!");
}
else {
alert ("Good evening, "+name+"!")
}
}
函数say_hello(){
变量日期=新日期();
var time=date.getHours();
var name=document.forms[“hello”][“name”].value;
如果(时间<12){
警报(“早上好,“+name+”!”);
}
否则如果(时间>12和时间<18){
提醒(“下午好,“+name+”!”);
}
否则{
提醒(“晚上好,“+name+”!”)
}
}
函数say_hello(){
变量日期=新日期();
var time=date.getHours();
var name=document.forms[“hello”][“name”].value;
如果(时间<12){
警报(“早上好,“+name+”!”);
}
否则如果(时间>12和时间<18){
警报(“下午好,“+name+”!”)
}
否则{
提醒(“晚上好,“+name+”!”)
}
//);//这会导致语法错误
}
在您的函数中,在最后一个后面有一个语法错误,否则{…}
,有一个不必要的)代码>
尝试删除它,它应该工作 修复所有语法错误,我建议您将事件附加如下:
document.forms["hello"]["Submit"].onclick=say_hello;
而不是onclick=“…”
您必须event.preventDefault()
这样表单才不会真正被提交。还有,什么不起作用?当我按下按钮时,什么也没发生。谢谢。现在看起来很明显!按第一次的顺序勾选你的。希望这一切都好:)
document.forms["hello"]["Submit"].onclick=say_hello;