每次单击按钮时显示当前日期

时间:2012-02-09 20:15:40

标签: javascript html jsp button alert

我有以下代码:

<html><body>
<script type="text/javascript"> function date1(){
    ????
    alert(<%=d%>);}</script>
<input type="button" value="date" onclick="date1()"/>
</body></html>

而不是????,每当我按下按钮时,会显示当前日期?

  1. <%String d = (new Date()).toString())%>
  2. <%String d = "new Date()"%>
  3. <%= Date d = new Date() %>;

2 个答案:

答案 0 :(得分:3)

由于这是作业,我会在没有明确说明哪个选项正确的情况下给你一个解释:

请记住,任何服务器端Java代码仅在请求/提供JSP时运行,主要产生将输出到浏览器的文本。带警报的行中的代码:

alert(<%=d%>);

将在d语句的括号之间输出服务器端(Java)alert变量的内容。因此,正确的答案是每次单击按钮时都会获得新的JavaScript日期,因此您需要确定哪一个会导致此输出到浏览器:

alert(new Date());

只有一个答案就是这样。

注意:如果您无法弄明白,请尝试使用每个答案实际运行代码并查看哪些有效。我想你会发现其中一个答案产生无效的JavaScript,一个产生服务器端编译错误,另一个产生。

答案 1 :(得分:1)

这是你在找什么? 您不需要JSP来执行此类操作。

1.第一个选项会产生编译错误,因为Date无法解析为某个类型(需要在jsp上使用import语句),应该删除1个右括号。如果您修复此选项将生成静态代码,如下所示

alert(Thu Feb 09 22:20:08 CET 2012);

因为JavaScript需要“标记字符串,这将在参数列表之后产生”缺失“并且不起作用。

2.第二个选项是正确的(就像nnnnnn所说的那样),因为静态代码看起来像

alert(new Date());

由于Date也是JavaScript函数,因此此代码将显示带日期的警报窗口。

3.第三个选项完全搞砸了,因为&lt;%=表示“print”所以“Date d =”是语法错误。