[英]Simple Javascript question
当我第一次单击按钮时,一切正常,但是第二次,什么也没有发生。 这是为什么?
<form name="alert"><input type="text" name="hour"><input type="text" name="min"><input type="button" value="ok" onclick="budilnik(this.form)">
<script type="text/javascript">
function budilnik(form)
{
budilnik=1;
min=form.min.value;
hour=form.hour.value;
alert (min+' '+hour+' '+budilnik);
}
</script>
学习使用Firebug 。 它将在将来极大地帮助您。
budilnik=1;
这听起来可能很疯狂,但这将功能budilnik 重新定义为整数,这破坏了表单的显示效果。 如果在此语句前添加关键字var
,则将使函数不可见,但不会覆盖它。 当您不指定var
关键字时,变量被假定为全局范围,这可能会引起问题(像这样)。
我使用firebug看到第二次点击,“未定义budilnik”。 如果使用了此工具,则可能自己调试了此问题。
变量 budilnik
遮盖了功能 budilnik
。 更改变量的名称,您的函数应该每次都能正常工作。
更详细地:
首先,JavaScript将budilink
定义为一个函数。 当budilnik
执行,价值budilnik
改写为整数1。因此,下一次的JavaScript被告知要执行budilink
,它试图执行1而不是在那里之前的功能。
将var
关键字放在变量名之前。
我已经测试了以下代码,并且可以正常工作:
<form name="alert">
<input type="text" name="hour">
<input type="text" name="min">
<input type="button" value="ok" onclick="budilnik(this.form);">
<script type="text/javascript">
function budilnik(form)
{
var budilnik=1;
var min=form.min.value;
var hour=form.hour.value;
alert (min+' '+hour+' '+budilnik);
}
</script>
更改budilnik = 1; 通过指定budilnik = 1,将其设置为i_budilnik = 1或其他一些变量名。 您正在将定义从函数更改为整数。
或者,您可以尝试var budilnik = 1; 但不确定是否可以解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.