//Last 3 Inserted
$data = getData(3);
//All Data
$data = getData();
...正确递增输入值。但是,我无法通过以下方式获取var input = $('input[type="number"]', this);
$('.inc').on('click', function(){
input.val( parseFloat(input.val()) + parseFloat(0.5));
});
事件:
change
我在这里做错了什么?
答案 0 :(得分:3)
您也需要触发change
,因为默认情况下,以编程方式设置的值不会触发任何事件。
var input = $('input[type="number"]', this);
$('.inc').on('click', function(){
input.val(parseFloat(input.val()) + parseFloat(0.5)).trigger("change");
});
除此之外,你需要声明你的updateTotal
函数,以便在创建事件监听器时使用它。
var updateTotal = function() {
console.log('change');
}
$('.hours input[type="number"]').on('change', updateTotal);
或声明一个命名函数:
$('.hours input[type="number"]').on('change', updateTotal);
function updateTotal() {
console.log('change');
}
或直接使用匿名函数:
$('.hours input[type="number"]').on('change', function() {
console.log('change');
});
<强> Working example. 强>
答案 1 :(得分:-1)
您可以在更改值后始终调用函数:
var input = $('input[type="number"]', this);
$('.inc').on('click', function(){
input.val( parseFloat(input.val()) + parseFloat(0.5));
do_something();
});
function do_something() {
console.log('change');
}
当然,您也必须更改此代码,以便在一个函数中执行所有操作:
$('input[type="number"]').on('propertychange change keyup input paste', function(){
do_something();
});
我想到的另一件事是以下,但没有测试它:
$('.inc').on('click', function(){
input.val( parseFloat(input.val()) + parseFloat(0.5)).trigger('change');
});