2010-03-20 64 views
1

当我点击按钮,第一次,一切正常,但第二次,没有任何反应。这是为什么?简单的Javascript问题

<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> 
+1

你的英语虽然古怪,但可以理解,不需要道歉。但是,您可以改进问题,说明您试图去调试问题。 – 2010-03-20 22:48:15

回答

6

学习使用Firebug。它将在未来帮助你。

budilnik=1; 

这听起来很疯狂,但是这是重新定义功能budilnik为整数,它打破表单的点击数。如果您以关键字var作为前言,您将遮蔽该功能但不覆盖它。当你没有指定var关键字时,变量被认为是全局作用域,这可能会导致问题(如此)。

我用萤火虫看到第二次点击时,“budilnik没有定义。”如果你使用过这个工具,你可能会自己调试这个问题。

3

可变budilnik被遮蔽的功能budilnik。更改变量的名称,并且每次您的函数都应该正确运行。

更详细地:

首先,JavaScript的看到定义为函数budilink。当执行budilnik时,budilnik的值将被整数1覆盖。因此,下次JavaScript被要求执行budilink时,它会尝试执行1,而不是之前的函数。

0

Change budilnik = 1;到i_budilnik = 1或其他一些变量名称..通过指定budilnik = 1;您正在将函数的定义更改为int val。

或者你可以尝试var budilnik = 1;但不知道如果解决。

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>