Javascript 在输入字段上委派更改事件
我试图在输入字段的值发生变化时启动一个函数。输入字段位于灯箱中,因此我必须委派事件:Javascript 在输入字段上委派更改事件,javascript,jquery,html,Javascript,Jquery,Html,我试图在输入字段的值发生变化时启动一个函数。输入字段位于灯箱中,因此我必须委派事件: var validateDonation = function(elem) { var msg, value = elem.value; if (value == '') { msg = 'Please enter an amount'; } else if(parseInt(value, 10) < 1) { msg = 'Please enter an amount grea
var validateDonation = function(elem) {
var msg,
value = elem.value;
if (value == '') { msg = 'Please enter an amount'; }
else if(parseInt(value, 10) < 1) { msg = 'Please enter an amount greater than 1'; }
else if(parseInt(value, 10) > 100) { msg = 'Please enter an amount less than 100'; }
else { msg = ''; }
if(msg != '') {
console.log(msg);
}
}
如果我使用keyup
而不是change
,控制台日志工作正常。但不是在改变。为什么?
onchange:在提交内容时触发此事件,而不是在值更改时触发。例如,在文本框上,当用户键入时不会触发此事件,而是当用户通过离开具有焦点的文本框提交更改时触发此事件。此外,当控件也失去焦点时,此事件在onblur指定的代码之前执行
如果希望立即更新更改,则需要使用oninput事件
oninput:DOM输入事件在
或
元素的值更改时同步激发。此外,当内容更改时,它会在contenteditable编辑器上激发
对于低于IE9的IE,我认为您需要使用onpropertychange事件以及oninput来适应现代浏览器
这里有一把小提琴,让你看到事件立即发生
试试这个…
$('body').delegate('#donation_amount', 'input propertychange', function (event) {
validateDonation(this);
});
你能试试$('body')。在('change','捐赠金额',函数(event){validateDonation(this);});当输入模糊时,更改事件甚至不会触发,是否应该触发更改事件?或者事件在更改时触发(输入模糊),但是您希望在输入框的值立即更改时触发事件吗?
$('body').delegate('#donation_amount', 'input propertychange', function (event) {
validateDonation(this);
});