2014-12-27 124 views
0

我目前有一個文件在玉,我試圖做一個表單,如果用戶在填寫問題的答案後單擊提交按鈕,然後它運行JavaScript函數。但是,出於某種原因,由於某些原因無法在文件中找到該函數。玉按鈕onClick不工作

下面是我的玉代碼:

script(language='JavaScript'). 
    function checkAnswer() { 
    var answer = document.getElementById('sessionID').value.toLowerCase(); 
     if(answer == '4') { 
     console.log('Correct!'); 
     } 
     else { 
     console.log('Sorry, try again!'); 
     } 
    } 

extends ../layout 

block content 
    .page-header 
    h3 Challenge #1 
    p 2 + 2 = ? 
    input(type='text', name='sessionID', value=valueID) 
    input(type='button', value='Submit', onclick='checkAnswer()') 

這將返回錯誤代碼:

Uncaught ReferenceError: checkAnswer is not defined 

我在做什麼錯?現在一定是很愚蠢:(

回答

1

與上面的人的幫助下固定它 - 即使別人說它沒有足夠的具體的幫助,這對我來說已經足夠了:)

以下是你將如何解決這個問題。由於它在「塊」之外簡單地將腳本移動到塊中,現在它將從Jade編譯成HTML。就個人而言,我也感動的JS到不同的文件,而不是描述就在玉文件中的函數我把它用線再次

script(type='text/javascript' src='answers.js') 

由於移動到另一個JS並已將其列入玉文件的幫助!

0

你需要把一些腳本塊爲它在生成的HTML文件中插入內

+0

即使它可能是一個答案的正確思想,它根本沒有幫助。 「一些塊」並沒有幫助。您應該添加更多信息。否則,您的答案可能確實被刪除。 – Joeytje50 2014-12-27 21:10:33

+0

我認爲OP已閱讀[this](http://jade-lang.com/reference/extends/)。他知道一個塊是什麼。而且我清楚地指出,是的,他需要將他的腳本標記放置在某個「塊」中,就像他的「內容」塊一樣,因爲它包含在生成的html文件中。我也假設他知道,爲了能夠註冊一個函數作爲一個事件處理程序,它需要事先在頁面中聲明,這不是他寫它的方式。我認爲這很有幫助。要比糾纏這個狗屎更好,而不是發佈一個更好的狗屎。 – spelufo 2014-12-27 21:55:16