Введите предложение jquery в тег gsp grails

Я получаю ошибку множественной компиляции, когда пытаюсь использовать предложение jQuery в теге Grails <g:link>

var ul = $("#authorList > ul");
ul.append('<li><g:link action = "show" controller = "author" id = "'+$('#authorID').val()+'">+'+$('#authorField').val()+'</g:link></li>')

Я получаю сообщение об ошибке только с jquery внутри атрибута id="" с этим

ul.append('<li><g:link action = "show" controller = "author" id = "">+'+$('#authorField').val()+'</g:link></li>')

Страница работает, но я не могу получить динамические ссылки, как это правильный синтаксис?


URI: /ComplexTables/book/create Class
org.codehaus.groovy.control.MultipleCompilationErrorsException
Message: startup failed: 19: illegal string body character after dollar sign; solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 19, column 210. l()\'"', 35, it) { return "'+$('#authorI ^ 1 error


Около строки 35 файла grails-app\views\book_form.gsp

function appendAuthor(ev) {
34:        var ul = $("#authorList > ul");
35:        ul.append('<li><g:link action = "show" controller = "author" id = "'+$('#authorID').val()'">+'+$('#authorField').val()+'</g:link></li>')
36:    }
37:</script>

gsp предварительно скомпилированы на сервере. Я был бы очень удивлен, что jQuery сможет это сделать.

Taplar 19.03.2019 16:58

поместите js во внешний ресурс, и все будет хорошо

daggett 19.03.2019 17:10

используя внешний файл, gsp не компилирует тег <g:link, размещает тег <g:link непосредственно в html

BZer0 20.03.2019 09:39

я попробую просто использовать обычный <a href = ""> без тега gsp

BZer0 20.03.2019 09:46

использовать обычный <a> сработало, я хотел бы запросить у сервера тег с <g:link>, но я думаю, что это невозможно

BZer0 20.03.2019 10:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
151
1

Ответы 1

Я не знаю GSP, но обычно идентификатор не может начинаться с цифры.

"Using characters except ASCII letters, digits, '_', '-' and '.' may cause compatibility problems, as they weren't allowed in HTML 4. Though this restriction has been lifted in HTML 5, an ID should start with a letter for compatibility."

И не лучше ли было бы использовать просто метод DOM getElementById() вместо jQuery

ul.append('<li><g:link action = "show" controller = "author" id = "sth_'+document.getElementById('authorID').value+'">+'+document.getElementById('authorID').value+'</g:link></li>')

в этом случае атрибут id не является обычным идентификатором всех тегов, в этом теге gsp вы помещаете в id первичный ключ элемента, который хотите показать, gsp компилирует этот тег в обычный тег <a href = "" с маршрут к элементу, который должен возвращать <a href = "some route/show/dinamyc id, полученный с помощью jquery"

BZer0 20.03.2019 09:36

я пробовал с document.getElementbyId, и gsp также возвращает ошибку компиляции. Ожидается '=' после имени атрибута (action = "show" controller = "author" id = "'+document.getElementById("authorID").value+'")

BZer0 20.03.2019 10:07

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