Форма в EJS файле не передает данные в строке после пробела

Итак есть EJS файл. В нем есть форма с раскрывающимся листом.

   <form action="/scheduler/jobEvent" method="POST">
      <div class="form-group">
        <select class="custom-select" id="addJobEvent" name="event[title]">
          <option selected>Select</option>
          <!-- populate personnel list -->
          <% personnelList.forEach(person => { %> 
            <option value=<%- person.title %>><%- person.title %></option>
          <% }) %> 
        </select>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-outline-success">Save Event</button>
      </div>
    </form>

Лист наполняется динамически из БД. Затем после нажатия submit данные из формы уходят на сервер в JS и далее обрабатываются:

router.post('/scheduler/jobEvent', middleware.loggedAsAdmin, async (req,res) => {
    var personTitle = req.body.event.title;
        console.log(personTitle);
});

Лист представляет собой список "ников" сотрудников, состоящих из имени и первой буквы фамилии, например John H, Mike K и т.д. И я столкнулся с тем что при передачи значения ника из списка в back-end теряется всё после пробела. То есть John H становится в консоли просто John. Я сделал следующие попытки поиска причины:

  1. Когда открываешь список на странице, то ники отображаются как положено с буквой после пробела, то есть в <%- person.title %> данные приходят нормально.
  2. Я пробовал вручную вбивать ник в значение списка <option value='John H'><%- person.title %></option> и данные передаются в таком же виде на сервер, то есть ничего не теряется по пути от клиента к серверу.
  3. Я добавил нижнее подчеркивание в ники в БД (John_H) и все доходит в таком же виде обратно на сервер, то есть причина именно в пробеле.
    Кто нибудь сталкивался с подобной проблемой?
    Заранее спасибо

Ответы (0 шт):