Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

126
Views
Event listener will stop working on an element after it changes (javascript only)

Please check the following executable example code ...

var inputform = document.getElementById('input-form');
var form = document.getElementById('message');
var input = document.getElementById('usermsg');

function change(value) {
  const form =`
    <form name="message" action="" id="message">
      <textarea  name="usermsg" id="usermsg"></textarea>
    </form>`;
  const div = `
    <div id="message">
      <div id="usermsg"></div>
    </div>`;
  var content = value == "div" ? div : form;

  inputform.innerHTML = content;
}

usermsg.addEventListener('keypress', function(e) {
  if (e.which == 13 && !e.shiftKey && input.value) {
    input.value = '';
  }
});
<div id="input-form">
  <form name="message" action="" id="message">
    <textarea  name="usermsg" id="usermsg"></textarea>
  </form>
</div>
<button onclick="change('div');">Press to div</button>
<button onclick="change('form');">Press to form</button>

I'am using this code to detect when a user clicks inside the element

usermsg.addEventListener('keypress', function(e) {
  if (e.which == 13 && !e.shiftKey && input.value) {
    input.value = '';
  }
});

It's supposed to be a listener but it will stop working if the element changes and even after, it changes back to its original form.

How can I prevent it from stop working with javascript only?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Okay, this is the answer:

inputform.addEventListener('keypress', function(e) {
  const tgt = e.target;
  if (tgt.id==="usermsg") {
     if (e.which == 13 && !e.shiftKey && tgt.value) {
       tgt.value = '';
     }
  }
});

Thank you guys.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!