繁体   English   中英

简单的Javascript问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM