2013-03-14 41 views
0

我創建用PHP一個HTML表如下:HTML數字輸入錯誤:無限循環時jquery.change事件稱爲

$i = 1; 
while($row = mysql_fetch_array($result)){ 
Print "<tr>"; 
Print "<td><input id='prEff[$i]' type='number' step='0.01' min='0.01' max='0.99' value='.85' </td>"; 
Print "<td>".$row['ErdEfficiency'] . "</td>"; 
Print "<td>".$row['TheoreticalSEC'] . "</td></tr>"; 

$i++; 
} 

輸入單元具有當所述數改變時調用一個函數jquery.change在範圍之內。在調試過程中,單擊向上或向下按鈕(使用chrome)會導致輸入遍歷所有值,直到達到上限或下限。所以這個函數被調用,但是隻有在整個值的範圍內運行完畢。

如果頁面沒有進行調試刷新,jquery被調用,但是按鈕被粘住,因爲它正在遇到所述的錯誤。

下面是簡單的jQuery功能:

$('[id^="prEff["]').change(function(){ 
     var test = this; 
     alert("hi"); 
}); 

它是一個困難的bug跟蹤,我不知道是什麼原因造成的。它發生在輸入中的onchange屬性,以及JavaScript eventListener和jQuery的變化。這可能是PHP打印輸入的方式,但我嘗試了幾種不同的方式,但沒有成功。

+1

是沒有結束的輸入標籤在你的代碼也還是就在這裏? – Steve 2013-03-14 19:10:22

+0

你能提供一個顯示你的問題的jsFiddle嗎?我創建了http://jsfiddle.net/2nExK/,它在Chrome上似乎對我來說工作得很好。 – Steve 2013-03-14 19:13:06

+0

PHP代碼與問題無關,因爲問題出在PHP完成之後的瀏覽器中;無論是否由PHP生成,相同的HTML代碼都會執行相同的操作。因此,看到實際的HTML會更有幫助。但既然你已經發布了PHP,我覺得我應該指出'mysql_xxx()'函數已被棄用。建議切換到'mysqli'或'PDO'庫。 – Spudley 2013-03-14 19:17:34

回答

0

您的代碼似乎有一個未封閉的<input>標記。請確保您關閉它,你應該罰款:

Print "<td><input id='prEff[$i]' type='number' step='0.01' min='0.01' max='0.99' value='.85' /> </td>";