2009-10-22 13 views
1

在我的HTML文件中,我有一個名爲「CheckCaptcha」的JavaScript函數。我使用下面的代碼行來單擊圖像時執行該功能。它不工作。經過數小時的調整和修改代碼之後,它不會簡單地到達JavaScript函數所在的位置。[HTML/JavaScript]:

我用這行代碼:

<input type="image" src="images/join.gif" name="SubmitStudent" onclick="CheckCaptcha();" width="98" height="31"/>

JavaScript部分是如下:

<script type="text/javascript"> 
function CheckCaptcha() 
{ 
    aler("-"); 
    var CaptchaWord; 
    CaptchaWord = document.getElementById(StudentCaptchaImage); 
    alert(CaptchaWord); 
    if (CaptchaWord.length <= 4) 
    { 
     alert("Please enter words as seen in the image."); 
     return false; 
    } 
} 
</Script> 

其實,我是一個新用戶,StackOverflow的是避免我張貼整個HTML部分。

+0

你能後的腳本部分? – rahul 2009-10-22 05:30:57

+0

只要函數在範圍內,這是一個完全有效的JavaScript調用。您確定該功能可以從該「位置」獲得,還是包含在另一個對象內? – 2009-10-22 05:33:01

+0

歡迎。您可以將HTML作爲代碼發佈 - 粘貼,然後單擊「代碼」按鈕 - 101010. – Kobi 2009-10-22 05:41:22

回答

4

試試這個:

function CheckCaptcha() 
{ 
    alert("-"); 
    var CaptchaWord = document.getElementById('StudentCaptchaImage'); 
    alert(CaptchaWord); 
    if (CaptchaWord.value.length <= 4) 
    { 
     alert("Please enter words as seen in the image."); 
     return false; 
    } 
} 
  • .value屬性包含值,DOM元素不具有length財產。
  • gEBI方法接受一個字符串,而不是一個標識符,除非它是一個變量。除非它是一個變量。
  • 您的示例在第一次警報中有錯字,我猜你最近添加了它,它不是最初的問題。

如果你不知道任何事情,你應該開始提醒許多事情儘量..

alert(typeof CaptchaWord.length) 
+0

我在getElementByID中使用了雙引號,而單引號是需要的。謝謝。 – RKh 2009-10-25 11:06:51

1

檢查了可能與此特定功能無關的JavaScript錯誤嗎?使用Firebug發現任何錯誤 我嘗試下面的代碼和它的工作

<script> 
    function CheckCaptcha(){ 
     alert("test"); 
    } 
</script> 
<input type="image" src="images/join.gif" name="SubmitStudent" onclick="CheckCaptcha();" width="98" height="31"/> 
+1

+1個關於調試的建議! – lexu 2009-10-22 05:49:09

0

你試過返回false取消事件泡沫?

 
onclick="CheckCaptcha(); return false" 
2

確保getElementById需要一個字符串:

CaptchaWord = document.getElementById("StudentCaptchaImage"); 
+0

+1 ...我認爲這就是問題 – Xinus 2009-10-22 05:45:28

+0

你的DOM元素沒有'長度'屬性 - 試試我的,如果這沒有完全做到這一點。 – 2009-10-22 05:47:22