0

All of the buttons on my web site suddenly stopped working. When I try to press them, in the console it says that they don't exist. I've checked to make sure the Javascript filename in the script tag is correct. I made a folder only for my current Javascript, html, and CSS files. I tried changing the script tag from being at the end of the html document to in the header. None of these things did anything.

medAppFreshStart3.html:33 Uncaught TypeError: noteModal is not a function at HTMLButtonElement.onclick (medAppFreshStart3.html:33) onclick @ medAppFreshStart3.html:33

<!DOCTYPE html>
<html>


<header>
    <script src="medAppFreshStart3.js"></script>
    <link rel="stylesheet" href="medAppStyle3.css" />
  </header>
  <body>
    <div class="container">
      <div class="d1">
        demographics
        <button onclick="newPatient()" id="newPatient">+ New Patient</button>
        <button onclick="localStorage.clear()" id="clearPtData">
          Clear Patient Data</button
        ><br />
        <!--<label for="search">Patient Search</label>-->
        <input id="search" placeholder="Enter patient name" />

        <button id="searchButton">search</button>

        <p id="nameDisplay"></p>
        <p id="ageDisplay"></p>

        <!--<label for="search">patient search</label>
        <input
          type="search"
          onsearch="findPatient()"
          name="search"
          id="search"
        />-->
      </div>
      <div class="d2 flex-container">
        current note
        <button onclick="noteModal()" id="newNote">+ Add</button>
        <div class="content">
          <div class="current-note-sub content-1" id="subjective">
            Subjective:
          </div>
          <div class="current-note-sub content-1" id="objective">
            Objective:
          </div>
          <div class="current-note-sub content-1" id="assessment">
            Assessment:
          </div>
          <div class="current-note-sub content-1" id="plan">Plan</div>
        </div>
      </div>
      <div class="d3">
        Problem-list
        <button onclick="addProblem()" id="new problem">+ Add</button>
        <div class="content">
          <div class="problem">Problem:</div>
          <div class="problem">Problem:</div>
          <div class="problem">Problem:</div>
          <div class="problem">PRoblem:</div>
        </div>
      </div>
      <div class="d4 flex-container">
        prescriptions
        <button onclick="addPrescription()" id="new prescription">+ Add</button>
        <div class="content" id="prescriptions">
          <div class="prescription" id="prescription1">prescription1</div>
          <div class="prescription" id="prescription2">prescription2</div>
          <div class="prescription" id="prescription3">prescription3</div>
          <div class="prescription" id="prescription4">prescription3</div>
        </div>
      </div>
      <div class="d5 flex-container">
        Previous Notes
        <div class="content">
          <div class="past-note" id="past-note1">Date: Complaint:</div>
          <div class="past-note" id="past-note2">Date: Complaint:</div>
          <div class="past-note" id="past-note3">Date: Complaint:</div>
          <div class="past-note" id="past-note4">Date: Complaint:</div>
        </div>
      </div>
    </div>
    <div id="addPrescription" class="modal">
      <!-- Modal content -->
      <div class="modal-content">
        <span onclick="closePrescription()" class="close">&times;</span>
        <form action="" method="post" id="prescriptionForm">
          <label for="Drug"> Drug:</label>
          <input
            type="text"
            id="Drug"
            name="Drug"
            type="text"
            reqired
            aria-required="true"
          />

          <label for="Dosage"> Dosage:</label>
          <input
            type="number"
            id="Dosage"
            name="Dosage"
            required
            aria-required="true"
          />
          <label for="measurement">Measurement</label>
          <select id="measurement" name="measurement">
            <option value="micrograms">micrograms</option>
            <option value="milligrams">milligrams</option>
            <option value="grams">grams</option>
          </select>
        </form>

        <button
          type="submit"
          value="submit"
          form="PrescriptionForm"
          onclick="createPrescription(); closePrescription()"
        >
          + Create
        </button>
      </div>
    </div>
    <div id="noteModal" class="modal">
      <!-- Modal content -->
      <div class="modal-content">
        <span onclick="closeNote()" class="close">&times;</span>
        <form action="" method="post" id="noteForm" name="noteform">
          <label for="Date"> Date: </label>
          <input
            type="text"
            id="Date"
            name="Date"
            reqired
            aria-required="true"
          />
          <label for="complaint"> Complaint: </label>
          <input
            type="text"
            id="complaint"
            name="complaint"
            reqired
            aria-required="true"
          />
          <label for="subjective">Subjective</label>
          <textarea id="subjective" name="subjective"></textarea>
          <label for="objective">Objective</label>
          <textarea id="objective" name="objective"></textarea>
          <label for="assessment">Assessment</label>
          <textarea id="assesment" name="assessment"></textarea>
          <label for="plan">Plan</label>
          <textarea id="plan" name="plan"></textarea>
        </form>

        <button onclick="createNote(), closeNote()">+ Create</button>
      </div>
    </div>
    <div id="addProblem" class="modal">
      <!-- Modal content -->
      <div class="modal-content">
        <span onclick="closeProblem()" class="close">&times;</span>
        <form action="" method="post" id="problemForm">
          <label for="problem"> Problem:</label>
          <input
            type="text"
            id="problemForm"
            name="problemForm"
            reqired
            aria-required="true"
          />
        </form>

        <button
          type="submit"
          value="submit"
          form="problem"
          onclick="closeProblem()"
        >
          + Create
        </button>
      </div>
    </div>
    <div id="newPtDemographics" class="modal">
      <!-- Modal content -->
      <div class="modal-content">
        <span onclick="closeDemo()" class="close">&times;</span>
        <form action="" method="post" id="demoForm">
          <label for="name"> Name:</label>
          <input
            type="text"
            id="name"
            name="name"
            reqired
            aria-required="true"
          />

          <label for="age"> Age:</label>
          <input
            type="number"
            id="age"
            name="age"
            reqired
            aria-required="true"
          />
        </form>

        <button onclick="createPatient(), closeDemo()">+ Create</button>
      </div>
    </div>
  </body>
</html>
```
```function newPatient() {
  const addPatient = document.getElementById('newPtDemographics');
  addPatient.style.display = 'block';
}

function findPatient() {
  let name = document.getElementById(search);
  name = name.innerText;
  console.log(name);
}

const button1 = document.getElementById('searchButton');
searchButton.addEventListener('click', () => {
  const name = document.getElementById('search').value;
  //console.log(name);
  let patients = localStorage.getItem('patients');
  patients = JSON.parse(patients);
  let patient = patients[name];
  nameDisplay = document.getElementById('nameDisplay');
  ageDisplay = document.getElementById('ageDisplay');

  nameDisplay.innerHTML = 'Name: ' + patient[key];
  ageDisplay.innerHTML = 'Age' = patient.age;

  //console.log(patient);
  //patients = JSON.parse(patients);
});
function createPatient() {
  let patients = localStorage.getItem('patients');
  const name = document.getElementById('name').value;
  const age = document.getElementById('age').value;
  if (patients !== null) {
    //instead of parsing here can just append array with new patient if it already exists.
    //Will need to parse to retrieve data to fill patient details when select new patient or
    //reopen broswer.
    patients = JSON.parse(patients);
  } else {
    patients = {};
  }
  patients[name] = { age: age };
  //patients.push({ [name]: { age: age } });
  localStorage.setItem('patients', JSON.stringify(patients));
  //console.log(patients[name]);
}
function addPrescription() {
  const addPrescription = document.getElementById('addPrescription');
  addPrescription.style.display = 'block';
}

function createPrescription() {
  const div = document.getElementById('prescriptions');

  const newPrescription = document.createElement('div');
  newPrescription.classList.add('prescription');
  const name = document.getElementById('name').value;
  console.log(name);
  //var patient = JSON.parse(localStorage.getItem('patients.[name]'));
  //newPrescription.innerHTML = patient;
  //div.appendChild(newPrescription);
  //console.log('testing');
  //console.log(patient);
  //console.log('testing');
  /*
  newPrescription.innerHTML =
    'Drug: ' +
    document.getElementById('prescriptionForm').Drug.value +
    ' Dosage: ' +
    document.getElementById('prescriptionForm').Dosage.value +
    ' ' +
    document.getElementById('prescriptionForm').measurement.value;
  div.appendChild(newPrescription);
  */
}
function createNote() {
  let noteForm = document.getElementById('noteForm');
  let formData = new FormData(noteForm);
  var object = {};
  formData.forEach(function (value, key) {
    object[key] = value;
  });
  var note = JSON.stringify(object);
}
function noteModal() {
  const noteModal = document.getElementById('noteModal');
  noteModal.style.display = 'block';
}
function addProblem() {
  const addProblem = document.getElementById('addProblem');
  addProblem.style.display = 'block';
}
function closeProblem() {
  const addProblem = document.getElementById('addProblem');
  addProblem.style.display = 'none';
}
function closeNote() {
  const noteModal = document.getElementById('noteModal');
  noteModal.style.display = 'none';
}

function closePrescription() {
  const addPrescription = document.getElementById('addPrescription');
  addPrescription.style.display = 'none';
}
function closeDemo() {
  const addPatient = document.getElementById('newPtDemographics');
  addPatient.style.display = 'none';
}
Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
  • 2
    Not the problem but you probably meant `` instead of `
    `.
    – Ruan Mendes Nov 30 '21 at 16:07
  • 1
    An object with an ID becomes a global variable. Your `
    – Ruan Mendes Nov 30 '21 at 16:14
  • 1
    `
    ` **must** be `` in that place, as `` can only have two children `` and ``.
    – connexo Nov 30 '21 at 16:16
  • It turned out to be some kind of simple syntax error I had made I found using the developer tools. Thanks for the info about ids creating global variables though, that's been good to know. I'm still not sure what's meant by overriding the global function though. – Timothy Woodard Dec 10 '21 at 14:52

0 Answers0