调用JavaScript函数后无法得到结果
本文关键字:结果 JavaScript 函数 调用 | 更新日期: 2023-09-27 18:19:53
我正在C#web应用程序中使用Javascript StopWatch。但是我没有从javascript中得到输出。下面是我的代码。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript" language="JavaScript">
var state = 0;
function startstop() {
if (state == 0) {
state = 1;
then = new Date();
then.setTime(then.getTime() - ms);
} else {
state = 0;
now = new Date();
ms = now.getTime() - then.getTime();
document.stpw.time.value = ms;
}
}
function swreset() {
state = 0;
ms = 0;
document.stpw.time.value = ms;
}
function display() {
setTimeout("display();", 50);
if (state == 1) {now = new Date();
ms = now.getTime() - then.getTime();
document.stpw.time.value = ms;
}
}
</script>
</head>
<body onload="display()">
<form id="form1" runat="server">
<div>
Time:
<input type="text" name="time"/>
<input type="button" name="ssbutton" value="Start/Stop" onclick="javascript:startstop()"/>
<input type="button" name="reset" value="Reset" onclick="javascript:swreset()"/>
</div>
</form>
</body>
</html>
我是javascript新手,哪里出错了??非常感谢。
Udate:最后我得到了错误并解决了它。下面是为那些想在C#应用程序中实现JavaScript Stopwatch的人提供的更新解决方案。
<html>
<head>
<script type="text/javascript">
var ms = 0;
var state = 0;
var then;
var now;
ms = new Date();
function startstop()
{
if (state == 0)
{
state = 1;
then = new Date();
then.setTime(then.getTime() - ms);
}
else
{
state = 0;
now = new Date();
ms = now.getTime() - then.getTime();
document.getElementById('timeInput').value = ms;
}
}
function swreset() {
state = 0;
ms = 0;
document.getElementById('timeInput').value = ms;
}
function display() {
ms = new Date();
setTimeout("display();", 50);
if (state == 1) {
now = new Date();
ms = now.getTime()-then.getTime();
document.getElementById('timeInput').value = ms;
}
}
</script>
</head>
<body onload="display()">
<form>
Time:
<input type="text" name="time" id="timeInput"/>
<input type="button" name="ssbutton" value="Start/Stop" onclick="javascript:startstop()"/>
<input type="button" name="reset" value="Reset" onclick="javascript:swreset()"/>
</form>
</body>
</html>
谢谢你的帮助。
以下是一些第一步:(这并不意味着一切都会奏效,但肯定会有所帮助。)
- 正如JohnFx所指出的,确保HTML处于良好的状态
- 为名为"时间"的"文本"输入提供ID。
<input type="text" name="time" id="timeInput"/>
- 使用getElementById()引用元素
document.getElementById("timeInput").value = ...
- 如果行为不正常,请将
alert(...)
语句放在javascript中,以查看它的去向和产生的值
好吧,有一个问题是这行:
<inputtype="button"name="ssbutton"value="Start/Stop" onclick="javascript:startstop()"/>
我想你需要在里面多留一些空间。
你也多次提到document.stpw.time
,但我在你的html中没有看到stpw。
onclick=...
、onload=...
坏javascript:
是无用的language=JavaScript
没用runat=server
是无用的- 您没有标题,因此没有有效的HTML
- 您的状态和功能是全球性的
- 你不使用
var ms = ...
document.stpw
不存在- 您可能想将表单命名为
document.stpw
,而document.<formName>
不好。请改用document.forms.stpw
setTimeout(string)
坏- 你不会以
}
结束你的if (...) {now = new Date();