$(document).ready(function() { $(".inputWithLimit").each(() => { var inp = this; inp.addEventListener("input", function (event){ console.log($(inp).val().length); }); }); })También probé "keyup" y "change" como controladores de eventos, y en los otros dos casos, jquery está haciendo algo extraño al asignar estos oyentes. Gracias.
Si está utilizando jQuery, no es necesario recorrer cada elemento y agregar un detector de eventos. Un ejemplo que registra el valor de cada entrada cuando ingresa algo.
$(document).ready(function() { $(".inputWithLimit").on('input',function() { console.log(this.value); }); }) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input class="inputWithLimit"> <input class="inputWithLimit">El problema es tu función de flecha. Cuando usa la función de flecha, entonces no puede usar 'esto'
$(".inputWithLimit").on("input", function() { console.log($(this).val().length); });También he hecho tu código más corto.
Manifestación
$(document).ready(function() { $(".inputWithLimit").on("input", function() { console.log($(this).val().length); }); }) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input class="inputWithLimit" />