2011-03-09 20 views
1

我正在尝试制作一个表单,其中包含一个用户名,然后当提交按钮被按下时,会显示一个提示,说明早上,下午或晚上(取决于时间) 。我觉得我在吐痰距离我,但我只是无法得到它的工作,这里是代码的相关片段:涉及表单和提醒的简单JavaScript问题

<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

+0

你将不得不'event.preventDefault() '这样表格实际上不会被提交。另外,什么是不工作? – JCOC611 2011-03-09 00:55:22

+0

当我按下按钮什么都没有发生。 – 2011-03-09 00:58:06

回答

0
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+"!") 
     } 
    //); //This causes a syntax error 
} 
+0

谢谢。现在看起来非常明显!因为它是第一个打勾你的。希望这一切都OK :) – 2011-03-09 01:08:22

0

您在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+"!") 
    } 
} 
+0

是真的,但它仍然不起作用。 – amosrivera 2011-03-09 00:58:22

+0

谢谢。现在看起来非常明显! – 2011-03-09 01:04:42

0

在你的功能,有一个语法错误刚刚过去else {...}后,有一个不必要的);

尝试删除它,它应该工作!

+0

谢谢。现在看起来非常明显! – 2011-03-09 01:03:54

0

修复所有的语法错误,我建议你连接这样的事件:

document.forms["hello"]["Submit"].onclick=say_hello; 

相反onclick="..."

LIVE DEMO