2013-10-15 74 views
4

我的HTML文件:jQuery鍵盤功能不起作用?

<html> 
<head> 
    <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> 
    <script type="text/javascript" src="js/scripts.js"></script> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 
    <title> 
    Login 
    </title> 
</head> 
<body> 
<div class=loginForm> 
    <p>Worker-ID:<input type=text id=workerID name=workerID /></p> 
    <p>Password:<input type=password id=workerPassword name=workerPassword /></p> 
    <input type=submit id=submitLogin name=submitLogin value="Log in"/> 
</div> 
</body> 
</html> 

我scripts.js中:

$('#workerID').keyup(function() { 
    alert('key up'); 
); 

它不會在所有的工作。我嘗試了一切空間,一個字母,數字。該警報不顯示。錯誤在哪裏?

+2

總是尋找錯誤信息在瀏覽器的開發者控制檯第一 – Phil

回答

23

除了錯過}的錯字,當您的script.js文件運行時(在<head>部分中),文檔的其餘部分不存在。要解決這個最簡單的方法是另外包裝您的腳本文件準備好處理,如

jQuery(function($) { 
    $('#workerID').on('keyup', function() { 
     alert('key up'); 
    }); 
}); 

,你可以在你的腳本移動到文件底部,如

 <script src="js/scripts.js"></script> 
    </body> 
</html> 

或使用事件委派它允許你綁定事件父元素(或文件),例如

$(document).on('keyup', '#workerID', function() { 
    alert('key up'); 
}); 
+1

感謝現在的工作:)我把它移到了最後,它起作用了!我應該總是把JavaScript和jQuery放在最後或者你有什麼建議嗎? – adiii4

+1

謝謝! $(document).on('keyup','#workerID',function()對我來說一切都沒有。 –

+0

This is the correct answer。Thank you @Phil –

0

語法是錯誤see here

$(document).ready(function() { 
    $("#workerID").keyup(function() { 
    ..................... 
    }); 
}); 

變化);});

2

你缺少大括號關閉功能:

$('#workerID').keyup(function() { 
    alert('key up'); 
}); 

這樣的錯誤,這些通常出現在瀏覽器的JavaScript控制檯。

0

在HTML

inser ID,姓名,淡水河谷在" "

<div class="loginForm"> 
    <p>Worker-ID:<input type="text" id="workerID" name="workerID" /></p> 
    <p>Password:<input type="password" id="workerPassword" name="workerPassword" /></p> 
    <input type="submit" id="submitLogin" name="submitLogin" value="Log in"/> 
</div> 

在JS

$('#workerID').keyup(function() { 
     alert('key up');} // here you forget "}" 
    ); 

demo