Функция JavaScript не определяет ошибку в файле ветки Symfony3

Я использую Symfony3 для своего проекта, и я сталкиваюсь с ReferenceError: optionOneChange не является ошибкой.

Вот мой файл HTML Twig:

{% 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";
}

Спасибо за вашу помощь.

1 ответ

Решение

Я думаю, что вам нужно поместить одну кавычку вокруг параметра, переданного в вашу функцию 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>

Не уверен, помогает ли это или нет, но вы можете проверить.

Другие вопросы по тегам