2010-03-20 81 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>