#javascript #html #jinja2
#javascript #HTML #jinja2
Вопрос:
Я использую шаблоны jinja. Вызов функции с объектом в качестве параметра. Это вызывающий абонент.
<input class="btn btn-primary center-block" onclick=execute( {{ x }} ) type="submit" id= 'receive-btn' value="Receive" >
Когда код фактически вызывается, именно так передается объект.
<input class="btn btn-primary center-block" onclick=execute((amp;<Orderitem uamp;#39;Lenovo Vibe K5 (Gold, 16GB)amp;#39;amp;>, datetime.datetime(2016, 9, 12, 16, 26, 47), uamp;#39; 402-7679899-5460354amp;#39;, uamp;#39;Lenovo Vibe K5 (Gold, 16GB)amp;#39;, 7000.0, 0.0, 1L, uamp;#39;9963802143amp;#39;, uamp;#39;nagarajuamp;#39;, 0.0, 0.0, UUID(amp;#39;377245de-ebaa-4fa9-ad70-8fa28ad602aeamp;#39;))) type="submit" id= 'receive-btn' value="Receive" >
Мне кажется, что объект в порядке, но я получаю его ошибку:
Uncaught SyntaxError: Unexpected token <
Есть ли причина, по которой это происходит?
Я новичок как в Javascript, так и в Jinja. В общем, как передать этот объект в функцию javascript?
Ответ №1:
Похоже, вы пытаетесь передать строку execute
функции в JavaScript.
Строковые литералы в JavaScript должны быть окружены "
символом или '
.
Поскольку вы этого не сделали, первый символ вашего data ( <
) обрабатывается как оператор less than , который не допускается в качестве первого символа внутри ()
вызывающей функции.
Заключите ваши строки в кавычки.
(Вам также необходимо указывать значения ваших атрибутов HTML, если они содержат пробелы и некоторые другие символы).
onclick="execute(amp;quot;{{ x }}amp;quot;)"
ПРИМЕЧАНИЕ: это приведет к сбою, если ваши данные когда-либо будут содержать "
символы. Посмотрите на преобразование x
в JSON, прежде чем помещать его в шаблон.
Ответ №2:
Вероятно, вокруг атрибута onclick должны быть кавычки.