[英]javascript or jquery event that fires whenever the selected value of a select changes
[英]javascript\jquery: Event that fires when textbox changes
我正在寻找一个jquery / simple javascript(不是其他一些库)解决方案,它将事件设置为一个文本框,当文本框被更改时将触发该文本框? (不是模糊之后)
无论它如何更改(键盘字符键/标签/输入或鼠标粘贴)我都需要它才能触发它我需要它只被激活一次。
不幸的是,没有一个。 有一天,所有浏览器都支持textinput
事件和/或HTML5 input
事件 ,但目前并非所有浏览器都支持,以及那些确实存在各种错误的浏览器 。 您可以使用事件的组合,但是您必须自己处理每个更改的响应,并且总是有可能无法在某处覆盖某些浏览器。
因此,如果你绝对必须这样做,你必须每N毫秒轮询一次value
属性。 (选择您满意的最大数字,以避免使浏览器工作太困难,并确保计时器功能中的代码尽可能紧凑和快速 - 例如, 不要重新查找每个元素时间,查阅一次并保留对它的引用。)
我使用了TJ Crowders的答案并提出了这段代码:
(function() {
setInterval(function() {
var validated = false;
if ($('#mytextinput').val() !== '' && validated === false) {
// perform validation or whatever you need
validated = true;
}
else {
validated = false;
}
}, 500);
})();
您可以绑定keyup事件。
$("textarea").bind("keyup", function() {
// Fires after the user has typed
});
请参阅: http : //jsfiddle.net/AWUbu/1/
var obj = document.getElementById("field");
var func= function(){
alert('hi');
}
obj.onkeypress= func;
obj.onclick = func;
obj.on... = func;
除了另一个答案中概述的bind
方法,您还可以这样做:
$("#txtTest").keyup(function(){
alert($(this).val());
});
您可以使用jQuery keydown或keyup。
var target = jQuery('#id');
target.keydown( function () { alert('hi'); } );
现在,因为你只想被调用一次,所以你要做的就是在调用之后解除绑定:
target.keydown( function () { alert('hi'); target.unbind('keydown'); } );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.