2016-07-22 44 views
2

我正在使用Symfony3作爲我的項目,而我正面臨ReferenceError:optionOneChange未定義錯誤。javascript函數未在Symfony3樹枝文件中定義錯誤

這是我的HTML文件枝杈:

{% extends 'base.html.twig' %} 

{% block body %} 

    <p id="question">{{ questions[0].desc }}</p> 
    <form id="form"> 
     <input type="radio" id="option1" onclick="optionOneChange(1)"> {{ questions[0].ans1}}<br> 
     <input type="radio" id="option2" onclick="optionOneChange(2)"> {{ questions[0].ans2}}<br> 
     <input type="radio" id="option3" onclick="optionOneChange(3)"> {{ questions[0].ans3}}<br> 
     <input type="radio" id="option4" onclick="optionOneChange(4)"> {{ questions[0].ans4}}<br> 
    </form> 

{% endblock %} 

{% block javascripts %} 

    <script src=" {{ asset('js/playGame.js') }}"></script> 

{% endblock %} 

和這裏的playGame.js文件:

function optionOneChange(option) 
{ 
    if (option == 1) 
     $(document).getElementById("question").innerHTML = "one"; 
    else if (option == 2) 
     $(document).getElementById("question").innerHTML = "two"; 
    else if (option == 3) 
     $(document).getElementById("question").innerHTML = "three"; 
    else if (option == 4) 
     $(document).getElementById("question").innerHTML = "four"; 
} 

感謝您的幫助。

+0

入住的開發工具,如果該文件'playGame.js'已經加載。 – cezar

+0

我已選中並加載。我已將腳本直接放置在腳本標記中,而不使用資源,結果也一樣。 –

+0

您的選擇器'$(document)'看起來很奇怪,但是肯定不會拖垮ReferenceError。我仍然將其更改爲'document.getElementById()'。 – cezar

回答

0

我認爲你需要把一個單引號周圍傳遞到您的js函數像這樣的參數:

<form id="form"> 
    <input type="radio" id="option1" onclick="optionOneChange('1')"> {{ questions[0].ans1}}<br> 
    <input type="radio" id="option2" onclick="optionOneChange('2')"> {{ questions[0].ans2}}<br> 
    <input type="radio" id="option3" onclick="optionOneChange('3')"> {{ questions[0].ans3}}<br> 
    <input type="radio" id="option4" onclick="optionOneChange('4')"> {{ questions[0].ans4}}<br> 
</form> 

而且,你從發佈代碼中的剪切粘貼&?如果是這樣,我在這裏看到了一個問題:

<script src=" {{ asset('js/playGame.js') }}"></script> 

前面有一個額外的空間,所以嘗試這個:

<script src="{{ asset('js/playGame.js') }}"></script> 

不知道有沒有什麼幫助或沒有,但你可以檢查。