0

I am trying to read the value of an input tag of type "search". I believe I should use $(this) in the following example, but it does not work:

$(document).ready(() => {

    $("#search-field").on("input", (event) => {
        var out = $(this).val(); 
        $(".test-label").text(out);
    })
})

However, if I use $(event.currentTarget) it does work:

$(document).ready(() => {

    $("#search-field").on("input", (event) => {
        var out = $(event.currentTarget).val();
        $(".test-label").text(out)
    })
})

According to difference between this and event target, it should work.

Am I missing something?

PeterJames
  • 1,137
  • 1
  • 9
  • 17
BobiBo
  • 1
  • 2
  • 1
    "In regular functions the this keyword represented the object that called the function, which could be the window, the document, a button or whatever. With arrow functions the this keyword always represents the object that defined the arrow function." Source: https://www.w3schools.com/js/js_arrow_function.asp#:~:text=In%20regular%20functions%20the%20this,that%20defined%20the%20arrow%20function. – Sergey Sosunov Aug 20 '22 at 18:58
  • 1
    The linked question uses `function()` not `()=>` change to `function()` and see. – freedomn-m Aug 20 '22 at 19:05

0 Answers0