简单的Javascript问题

时间:2010-03-20 22:31:23

标签: javascript forms button

当我第一次点击按钮时,一切正常,但第二次,没有任何反应。那是为什么?

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

4 个答案:

答案 0 :(得分:6)

学习使用Firebug。它将来会对你有很大的帮助。

budilnik=1;

这可能听起来很疯狂,但这是重新定义函数budilnik到一个整数,这会破坏你的表单的onlick。如果您在此语句前面加上关键字var,则会隐藏该函数但不会覆盖它。如果未指定var关键字,则假定变量为全局范围,这可能会导致问题(如此)。

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

答案 1 :(得分:3)

变量 budilnik正在影响功能 budilnik。更改变量的名称,您的功能应该每次都正常工作。

更详细:

首先,JavaScript将budilink定义为函数。执行budilnik时,budilnik的值将被整数1覆盖。因此,下次JavaScript被告知执行budilink时,它会尝试执行1,而不是执行以前在那里。

答案 2 :(得分: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>

答案 3 :(得分:0)

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

或者你可以尝试var budilnik = 1;但不确定是否能解决。