当我第一次点击按钮时,一切正常,但第二次,没有任何反应。那是为什么?
<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>
答案 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;但不确定是否能解决。