Внешняя функция не работает при загрузке страницы, но работает при нажатии кнопки - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть шаблон EJS, в котором я использую внешнюю функцию двумя разными способами.Когда документ загружается, я хочу просмотреть существующие данные, и при нажатии кнопки я также хочу запустить функцию.Он хорошо работает при нажатии, но не работает при загрузке страницы.

Внешняя функция JS вставляет форму для клиентов, чтобы объявить свои долги.Пользователи уже объявили свои долги.Я работаю над страницей редактирования, где они могут изменить предыдущую информацию или объявить новые долги.

Когда страница загружается, я хочу:

A) перебрать существующие долги, передать информацию в функцию addDebt и создать предварительно заполненную форму на лету.

B) Я также хочу, чтобы они могли добавлять новые долги с помощью выпадающей кнопки, которая использует ту же функцию для вставки пустой формы.

B работает отлично, но функция не распознается в A. Я уверен, что это проблема синхронизации, поскольку содержимое DOM не загружается, когда NODE пытается выполнить рендеринг A. Я просто не могувыяснить, как это исправить.Когда я пытаюсь добавить window.onload в function.js, он вообще перестает работать!

Извините, если этот вопрос многословен или неясен, так как мое имя пользователя предполагает, что я новичок в этом.

function.js 

function  addDebt(x, y) {

  DOM manipulation to insert different form elements based on value of x (ie “credit card”, 
   “home Loan” etc)


  if (y == '1')   
   generate pre populated fields for existing debts




Ejs

<div class="container main">
    <h4>Edit debts:</h4>

//PART A - loop through existing debts of the user and feed them into the 
function to generate pre populated forms for editing the information

<%  liabilities.forEach(function(liability){ %> 
    addDebt(<%=  liability.type %>, ‘1’);
    <% }); %>       


// PART B - allow user to add new debts by selecting them from dropdown     

   <div class="dropdown col-12 col-sm-3 mb-2">
       <button  data-toggle="dropdown">
        Add a new debt 
       </button>
   <div class="dropdown-menu">
       <a class="dropdown-item" onclick="addDebt('Home Mortgage', '0')" 
          href="#">Mortgage on your home</a>

       <a class="dropdown-item" onclick="addDebt('Credit Card, '0',     
         '0')"href="#">Credit cards</a>

       <a class="dropdown-item" onclick="addDebt('Car Loan', '0')" 
        href="#">Car Loans</a>
    </div>
 </div>
...