JQuery Сериализация усеченных концевых пробелов - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть форма, подобная следующей:

<form id="myForm">
  <input th:field="*{name}"/>
  <input th:field="*{id}"/>
  <button type="button" id="cancelButton" onclick="processCancel()">Cancel</button>
 </form>

метод JS, который передает сериализованную форму на веб-слой для сравнения с текущей записью базы данных

function processCancel() {
   let data = $('#myForm').serialize();

   $.ajax({
       url: "compare",
       data: data,
       success: function (change) {
           if (!change) {
               $('#reload').click();
           }},
       async:false
   });
}

и веб-контроллер, который сравнивает объекты

    @GetMapping(value = "/compare", produces = "application/json; charset=UTF-8")
    public @ResponseBody boolean compare(@ModelAttribute(name = "form") SomeObject form) {
        SomeObject dbRecord = //get the record from the db

        return !dbRecord.equals(form);
    }

Некоторые записи базы данных имеют конечный пробел; например: name="someName ". Проблема в том, что serialize(), похоже, усекает конечные пробелы, поэтому, когда поле name возвращает его на веб-слой, оно равно name="someName" вместо name="someName ", что вызывает любое сравнение между объектом из формы и записью базы данных. потерпеть неудачу.

Есть ли способ предотвратить усечение сериализацией завершающего пробела?

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