Избегание одинарных кавычек в функции JavaScript - PullRequest
0 голосов
/ 28 ноября 2018

Я использую fn:escapeXml для экранирования кавычек в функции JavaScript.Это отлично работает с двойными кавычками, но не работает с одинарными.Ниже приведен HTML-код:

 <button class = "location" 
   onclick = "locationModelMethod('${fn:escapeXml(listItem.getBaseRate())}','${listItem.getCreateDate()}','${listItem.getId()}','${listItem.getUser().getEmployeeId()}','${listItem.getChecker().getEmployeeId()}','${listItem.getStatus()}', '${listItem.getRemarks()}' ,${listItem.isActive()})" >
${fn:escapeXml(listItem.getBaseRate())}
 </button> 

Ошибка возникает, когда ${listItem.getBaseRate()} содержит одинарные кавычки.Я получаю сообщение об ошибке Uncaught SyntaxError: missing ) after argument list Кто-нибудь может мне помочь с этим

1 Ответ

0 голосов
/ 28 ноября 2018

Литералы шаблона внутри параметров функции не работают.Вам нужно будет просто указать параметры.

Например:

myFunc(`${myVar}`)

Можно просто использовать:

myFunc(myVar)

Кроме того, не присоединяйте встроенный обработчик, как предлагаетсяАвтор: CertainPerformance в комментарии.

Пример, включающий передаваемые параметры

<html>

<body>
  <script>
    // Parameters that get passed into function being fired by onclick
    var myParam = 'param';

    function myParameterFunction() {
      return 'functionParam';
    }

    function myParameterFunctionWithParams(foo) {
      return foo + 1;
    }
  </script>

  <button onclick="myFunction(myParam, myParameterFunction(), myParameterFunctionWithParams(2))">
      Click me!
    </button>

  <script>
    function myFunction(a, b, c) {
      console.log('fired', a, b, c)
    }
  </script>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...