Мне нужно отправить переменные во время выполнения в js-метод для ajax. Я пытаюсь с помощью этой функции OnClick, но она дает синтаксическую ошибку при клике .:Как цитировать/записывать переменную JSP в JavaScript код встроенного атрибута?
<c:set var="abc" value="${myTaglib:getAbc()}" />
<a href="#" onclick="sendAjax(${abc.firstVal}, ${abc.secVal}, ${abc.thirdVal}, ${abc.fourthVal}, ${abc.fifthVal})"> Click Here !!!</a>
Некоторые из этих значений может иметь пробелы и десятичные в них. По щелчку, я получаю эту ошибку при первом появлении пространства .:
SyntaxError: missing) after argument list
Действительное HTML выглядит как:
<a onclick="sendAjax(240265, Workplace Ethics Exam, Company Security Policy, Friends Life, ABF/45RFG, 41444.1830)" href="#">Click Here !</a>
Что не так с этим JS позвонить?
Что такое * актуальный * HTML возвращен? Это точно укажет, где ошибка (-ы) - в этом случае пытается писать недопустимые литералы JS; вероятно, текстовые значения, которые неправильно написаны как строковые литералы. Сама '$ {..}' интерполяция * не * понимает контекст «JavaScript-кода» или как правильно кодировать значение. – user2864740
Теперь, * предполагая, что значения никогда не содержат кавычек (одно или два), тогда 'sendAjax ('$ {abc.firstVal}', '$ {abc.secVal}', ..)' будет "исправлять", что результат. Такой по-прежнему ужасный хак, хотя (поскольку он является ручным и будет «разбиваться случайным образом», если есть кавычки и в некоторых других случаях края); должна быть подходящая функция кодирования - я создал такую на C#, и я уверен, что она похожа на Java/JSP. – user2864740
Связанный/повторяющийся вопрос http://stackoverflow.com/questions/27496052/jsp-variable -as-javasript-function-parameters? rq = 1 (это не точно из-за другого контекста, хотя!) - с едва доступным/адаптивным решением. В идеале был бы «несколько элегантный» способ сделать это. – user2864740