Active el atributo onchange en la entrada según un proceso específico. Sin embargo, incluso si utilizo "Evento" como parámetro, sigo recibiendo el siguiente error. Además, alternativamente, probé Event.StopPropagation () y Return False pero el problema continúa.
$(function () { test(); }); function test(obj) { var inputValue = parseInt($(obj).val()); if (($(obj).val() < 0 || $(obj).val() > 100) && event.keyCode !== 46 // keycode for delete && event.keyCode !== 8 // keycode for backspace ) { event.preventDefault(); $(obj).val(0); } else if (isNaN(inputValue)) { event.preventDefault(); $(obj).val(0); } } <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script> <div> <input id="weightInput" type="number" class="form-control weightInput" data-key="" data-guid="" onchange="test(this)" value="" /> </div>Debe pasar el event como un argumento explícito al argumento onchange .
Tampoco deberías llamarlo desde $(function() { }) , ya que no hay ningún evento allí.
function test(obj, event) { var inputValue = parseInt($(obj).val()); if (($(obj).val() < 0 || $(obj).val() > 100) && event.keyCode !== 46 // keycode for delete && event.keyCode !== 8 // keycode for backspace ) { event.preventDefault(); $(obj).val(0); } else if (isNaN(inputValue)) { event.preventDefault(); $(obj).val(0); } } <script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script> <div> <input id="weightInput" type="number" class="form-control weightInput" data-key="" data-guid="" onchange="test(this, event)" value="" /> </div>Debería usar el oyente de jQuery para manejar el evento que no está definido en su código actual. También debe usar el objetivo de eventos como su objeto
/***This here**/ jQuery(document).on('change','#weightInput',test); function test(event) { let obj = event.target var inputValue = parseInt($(obj).val()); if (($(obj).val() < 0 || $(obj).val() > 100) && event.keyCode !== 46 // keycode for delete && event.keyCode !== 8 // keycode for backspace ) { event.preventDefault(); $(obj).val(0); } else if (isNaN(inputValue)) { event.preventDefault(); $(obj).val(0); } }