我有以下内容:
$(document).ready(function () {
var timer;
$('.coInput').on('change', function () {
var itemID = $(this).attr('data-id');
var rate = $(this).val();
var $this = $(this);
$this.prop('disabled', true);
clearTimeout(timer);
timer = setTimeout(function() {
$.ajax({
url: '/update_crackout/',
type: 'POST',
dataType: 'json',
data: {
'object': itemID,
'rate': rate
},
success: function(data) {
$('#weight-'+itemID).html(data.weight);
$('#price-'+itemID).html(data.price);
$this.prop('disabled', false);
}
})
}, 500)
})
});
它似乎并不一致。它指向一个数字领域。当我使用向上/向下箭头更改值时,它会在第一次工作,然后仅在此之后间歇性地工作。是什么导致.change()错过了我的一些变化?
我尝试删除除了一个console.log()
之外的所有内容,它也做了同样的事情。
答案 0 :(得分:1)
根据MDN:
针对
>>> type(1) <type 'int'> >>> >>> isinstance(1, int) True >>>
,<input>
和<select>
触发了更改事件 元素的值更改时的元素 用户。 与输入事件不同,更改事件不一定 每次更改元素值时触发。(强调我的)
因此,如果您需要在每次更改时触发事件,请使用&#34;输入&#34;事件
这是一个用于显示其工作状态的代码:https://codepen.io/Nisargshah02/pen/BJPYoY
<textarea>
&#13;
$("input").on("input", function(){
console.log($(this).val());
});
&#13;