【发布时间】:2022-01-17 07:01:46
【问题描述】:
我根据特定流程在输入中触发 onchange 属性。但是,即使我将“事件”作为参数,我仍然会继续收到以下错误。另外,或者,我尝试了 Event.StopPropagation () 和 Return False,但问题仍然存在。
$(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>
【问题讨论】:
-
event未在您的函数中定义。不要在事件处理程序中使用test(this),只需将test()放在事件处理程序中并使用this关键字来引用该元素。这将使obj成为您的事件对象。
标签: javascript jquery jquery-ui preventdefault